Файл: 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);
}
?>