Файл: reg.php
Строк: 187
<?php
##############################################################################
# * #
# * XG PROYECT #
# * #
# * @copyright Copyright (C) 2008 - 2009 By lucky from xgproyect.net #
# * #
# * #
# * This program is free software: you can redistribute it and/or modify #
# * it under the terms of the GNU General Public License as published by #
# * the Free Software Foundation, either version 3 of the License, or #
# * (at your option) any later version. #
# * #
# * This program is distributed in the hope that it will be useful, #
# * but WITHOUT ANY WARRANTY; without even the implied warranty of #
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# * GNU General Public License for more details. #
# * #
##############################################################################
define('INSIDE' , true);
define('INSTALL' , false);
define('LOGIN' , true);
$InLogin = true;
$xgp_root = './';
include($xgp_root . 'extension.inc.php');
include($xgp_root . 'common.' . $phpEx);
includeLang('PUBLIC');
$parse = $lang;
function sendpassemail($emailaddress, $password)
{
global $game_config, $lang;
$email = parsetemplate($lang['reg_mail_text_part1'] . $password . $lang['reg_mail_text_part2'] . GAMEURL, $parse);
$status = mymail($emailaddress, $lang['register_at'] . $game_config['game_name'], $email);
return $status;
}
function mymail($to, $title, $body, $from = '')
{
$from = trim($from);
if (!$from)
$from = ADMINEMAIL;
$rp = ADMINEMAIL;
$head = '';
$head .= "Content-Type: text/html rn";
$head .= "charset: cp1251 rn";
$head .= "Date: " . date('r') . " rn";
$head .= "Return-Path: $rp rn";
$head .= "From: $from rn";
$head .= "Sender: $from rn";
$head .= "Reply-To: $from rn";
$head .= "Organization: $org rn";
$head .= "X-Sender: $from rn";
$head .= "X-Priority: 3 rn";
$body = str_replace("rn", "n", $body);
$body = str_replace("n", "rn", $body);
return mail($to, $title, $body, $head);
}
if ($_POST)
{
$errors = 0;
$errorlist = "";
$_POST['email'] = strip_tags($_POST['email']);
if (!is_email($_POST['email']))
{
$errorlist .= $lang['invalid_mail_adress'];
$errors++;
}
if (!$_POST['character'])
{
$errorlist .= $lang['empty_user_field'];
$errors++;
}
if (strlen($_POST['passwrd']) < 4)
{
$errorlist .= $lang['password_lenght_error'];
$errors++;
}
if (preg_match("/[^A-zА-я0-9_-]/", $_POST['character']) == 1)
{
$errorlist .= $lang['user_field_no_alphanumeric'];
$errors++;
}
if ($_POST['rgt'] != 'on')
{
$errorlist .= $lang['terms_and_conditions'];
$errors++;
}
$ExistUser = doquery("SELECT `username` FROM {{table}} WHERE `username` = '" . mysql_escape_string($_POST['character']) . "' LIMIT 1;", 'users', true);
if ($ExistUser)
{
$errorlist .= $lang['user_already_exists'];
$errors++;
}
$ExistMail = doquery("SELECT `email` FROM {{table}} WHERE `email` = '" . mysql_escape_string($_POST['email']) . "' LIMIT 1;", 'users', true);
if ($ExistMail)
{
$errorlist .= $lang['mail_already_exists'];
$errors++;
}
if ($errors != 0)
{
message ($errorlist, "reg.php", "3", false, false);
}
else
{
$newpass = $_POST['passwrd'];
$UserName = $_POST['character'];
$UserEmail = $_POST['email'];
$md5newpass = md5($newpass);
$QryInsertUser = "INSERT INTO {{table}} SET ";
$QryInsertUser .= "`username` = '" . mysql_escape_string(strip_tags($UserName)) . "', ";
$QryInsertUser .= "`email` = '" . mysql_escape_string($UserEmail) . "', ";
$QryInsertUser .= "`email_2` = '" . mysql_escape_string($UserEmail) . "', ";
$QryInsertUser .= "`ip_at_reg` = '" . $_SERVER["REMOTE_ADDR"] . "', ";
$QryInsertAdm .= "`user_agent` = '', ";
$QryInsertUser .= "`id_planet` = '0', ";
$QryInsertUser .= "`register_time` = '" . time() . "', ";
$QryInsertUser .= "`password`='" . $md5newpass . "';";
doquery($QryInsertUser, 'users');
$NewUser = doquery("SELECT `id` FROM {{table}} WHERE `username` = '" . mysql_escape_string($_POST['character']) . "' LIMIT 1;", 'users', true);
$LastSettedGalaxyPos = $game_config['LastSettedGalaxyPos'];
$LastSettedSystemPos = $game_config['LastSettedSystemPos'];
$LastSettedPlanetPos = $game_config['LastSettedPlanetPos'];
while (!isset($newpos_checked))
{
for ($Galaxy = $LastSettedGalaxyPos; $Galaxy <= MAX_GALAXY_IN_WORLD; $Galaxy++)
{
for ($System = $LastSettedSystemPos; $System <= MAX_SYSTEM_IN_GALAXY; $System++)
{
for ($Posit = $LastSettedPlanetPos; $Posit <= 4; $Posit++)
{
$Planet = round (rand (4, 12));
switch ($LastSettedPlanetPos)
{
case 1:
$LastSettedPlanetPos += 1;
break;
case 2:
$LastSettedPlanetPos += 1;
break;
case 3:
if ($LastSettedSystemPos == MAX_SYSTEM_IN_GALAXY)
{
$LastSettedGalaxyPos += 1;
$LastSettedSystemPos = 1;
$LastSettedPlanetPos = 1;
break;
}
else
{
$LastSettedPlanetPos = 1;
}
$LastSettedSystemPos += 1;
break;
}
break;
}
break;
}
break;
}
$QrySelectGalaxy = "SELECT * ";
$QrySelectGalaxy .= "FROM {{table}} ";
$QrySelectGalaxy .= "WHERE ";
$QrySelectGalaxy .= "`galaxy` = '" . $Galaxy . "' AND ";
$QrySelectGalaxy .= "`system` = '" . $System . "' AND ";
$QrySelectGalaxy .= "`planet` = '" . $Planet . "' ";
$QrySelectGalaxy .= "LIMIT 1;";
$GalaxyRow = doquery($QrySelectGalaxy, 'galaxy', true);
if ($GalaxyRow["id_planet"] == "0")
$newpos_checked = true;
if (!$GalaxyRow)
{
CreateOnePlanetRecord ($Galaxy, $System, $Planet, $NewUser['id'], $UserPlanet, true);
$newpos_checked = true;
}
if ($newpos_checked)
{
doquery("UPDATE {{table}} SET `config_value` = '" . $LastSettedGalaxyPos . "' WHERE `config_name` = 'LastSettedGalaxyPos';", 'config');
doquery("UPDATE {{table}} SET `config_value` = '" . $LastSettedSystemPos . "' WHERE `config_name` = 'LastSettedSystemPos';", 'config');
doquery("UPDATE {{table}} SET `config_value` = '" . $LastSettedPlanetPos . "' WHERE `config_name` = 'LastSettedPlanetPos';", 'config');
}
}
$PlanetID = doquery("SELECT `id` FROM {{table}} WHERE `id_owner` = '". $NewUser['id'] ."' LIMIT 1;" , 'planets', true);
$QryUpdateUser = "UPDATE {{table}} SET ";
$QryUpdateUser .= "`id_planet` = '" . $PlanetID['id'] . "', ";
$QryUpdateUser .= "`current_planet` = '" . $PlanetID['id'] . "', ";
$QryUpdateUser .= "`galaxy` = '" . $Galaxy . "', ";
$QryUpdateUser .= "`system` = '" . $System . "', ";
$QryUpdateUser .= "`planet` = '" . $Planet . "' ";
$QryUpdateUser .= "WHERE ";
$QryUpdateUser .= "`id` = '" . $NewUser['id'] . "' ";
$QryUpdateUser .= "LIMIT 1;";
doquery($QryUpdateUser, 'users');
$from = $lang['welcome_message_from'];
$sender = $lang['welcome_message_sender'];
$Subject = $lang['welcome_message_subject'];
$message = $lang['welcome_message_content'];
SendSimpleMessage($NewUser['id'], $sender, $Time, 1, $from, $Subject, $message);
doquery("UPDATE {{table}} SET `config_value` = `config_value` + '1' WHERE `config_name` = 'users_amount' LIMIT 1;", 'config');
@include('config.php');
$cookie = $NewUser['id'] . "/%/" . $UserName . "/%/" . md5($md5newpass . "--" . $dbsettings["secretword"]) . "/%/" . 0;
setcookie($game_config['COOKIE_NAME'], $cookie, 0, "/", "", 0);
unset($dbsettings);
header("location:game.php?page=overview");
}
}
else
{
$parse['servername'] = $game_config['game_name'];
$parse['forum_url'] = $game_config['forum_url'];
display (parsetemplate(gettemplate('public/registry_form'), $parse), false, '',false, false);
}
?>