예제 #1
0
function doPlayerSignUp($login, $password, $password2, $fullname, $email, $country, $platform, $gametype, $blurb, $showemail, $showblurb, $occ, $sig, $interests, $website, $icq, $aim, $yim, $mimn, $confirm, $confirmCode, $confirmVersion)
{
    global $cfg_email_from_address;
    global $cfg_email_signup_subject;
    global $cfg_winbolodb;
    global $userdata;
    if ($confirmVersion != "1.16") {
        return "You answered the version number question wrong.";
    }
    $login = strip_tags($login);
    $login = trim($login);
    $login = stripslashes($login);
    $login = chop($login);
    if (strlen($login) == 0) {
        return "Missing name.";
    }
    $llogin = strtolower($login);
    if ($llogin == "john" || $llogin == "postmaster" || $llogin == "webmaster" || $llogin == "root" || $llogin == "non winbolo.net particip" || $llogin == "dns" || ${$llogin} == "default" || $llogin == "MAILER-DAEMON") {
        return "Sorry, you can't have that name :)";
    }
    if (strstr($llogin, " ") != FALSE) {
        return "Sorry, WinBolo.net player names can no longer contain spaces.";
    }
    $password = stripslashes($password);
    $password2 = stripslashes($password2);
    $fullname = stripslashes($fullname);
    $email = stripslashes($email);
    $country = stripslashes($country);
    $platform = stripslashes($platform);
    $gametype = stripslashes($gametype);
    $blurb = stripslashes($blurb);
    $showemail = stripslashes($showemail);
    $showblurb = stripslashes($showblurb);
    $occ = stripslashes($occ);
    $sig = stripslashes($sig);
    $interests = stripslashes($interests);
    $aim = stripslashes($aim);
    $yim = stripslashes($yim);
    $mimn = stripslashes($mimn);
    if (trim($login) == "" || trim($email) == "" || trim($fullname) == "" || trim($password) == "") {
        return "Missing required information";
    }
    if ($password != $password2) {
        return "Passwords do not match";
    }
    $checkEmail = strstr($email, "@");
    if ($checkEmail == null) {
        return "This does not look like a valid email address. Please try again.";
    }
    if (!ereg(".+\\@.+\\..+", $email) || !ereg("^[a-zA-Z0-9_@.-]+\$", $email)) {
        return "Your email address is not valid.";
    }
    #Check lengths of stuff
    if (strlen($login) > 32) {
        return "Your login is too long. Please choose another";
    }
    if (strlen($password) > 32) {
        return "Your password is too long. Please choose another";
    }
    if (strlen($email) > 255) {
        return "Your email address is too long. Do you have another you could use?";
    }
    if (strlen($fullname) > 255) {
        return "Your Full Name is too long. Maybe you could abbreviate it?";
    }
    if (doesPlayerExist($login) == true) {
        return "Login in use. Please select another";
    }
    if (stristr($login, "'") != false || stristr($login, "\"") != false || stristr($login, "\\") != false) {
        return "Sorry, player names can not contain \\ or ' or \" in them.";
    }
    #
    # Test confirmation code
    #
    $confirm = strip_tags($confirm);
    $confirm = htmlspecialchars($confirm);
    $confirm = trim($confirm);
    if (!preg_match('/^[A-Za-z0-9]+$/', $confirm)) {
        $confirm = '';
    }
    if (strlen($confirm) == 0) {
        return "Missing confirmation code";
    }
    $confirm = mysql_escape_string($confirm);
    $sql = "SELECT code FROM confirm WHERE confirm_id = '{$confirm}' AND session_id = '" . $userdata['session_id'] . "'";
    $r = mysql_query($sql);
    if (!$r) {
        return "Missing confirmation code";
    }
    $confirmCode = trim($confirmCode);
    if (mysql_result($r, 0, "code") != $confirmCode || strlen($confirmCode) == 0) {
        mysql_free_result($r);
        return "Incorrect confirmation code";
    }
    mysql_free_result($r);
    $sql = "DELETE FROM confirm WHERE confirm_id = '{$confirm}' AND session_id = '" . $userdata['session_id'] . "'";
    mysql_query($sql);
    #
    # Done confirm check... continue on all good
    #
    $id = storeForumNames($cfg_winbolodb, $login, $password, $email, $sig, $occ, $country, $website, $icq, $aim, $yim, $mimn, "", $showemail, $gametype);
    if ($id < 0) {
        return "Database error";
    }
    $sql = "insert into view_player (id, view_count) values ({$id}, 0)";
    if (!mysql_query($sql)) {
        return "Database error";
    }
    $sql = "insert into stats_player (pid, tourn_score, strict_score, locked) values ({$id}, 1600, 1600, 'F')";
    if (!mysql_query($sql)) {
        return "Database error";
    }
    $blurb = trim($blurb);
    $blurb = normalize_whitespace($blurb);
    $blurb = chop($blurb);
    $blurb = mysql_escape_string($blurb);
    $regip = mysql_escape_string(getenv("REMOTE_ADDR"));
    $sql = "update users set user_blurb = '{$blurb}', user_viewblurb = {$showblurb}, user_registerip = '{$regip}' where user_id = {$id}";
    if (!mysql_query($sql)) {
        return "Database error";
    } else {
        $message = "Hi " . $fullname . ",\n\nWelcome to WinBolo.net!\n\nPlease keep this email for your personal records.\n\nWinbolo.net is a real time Winbolo game tracking and player statistics website. If you have any questions or problems please take a look at the Help pages and then try asking your questions in the forum.\n\nFor help with using Winbolo.net with your Winbolo client, see the howto page at http://www.winbolo.net/howtowbn.php\n\n";
        $message .= "Your account information is as follows:\n";
        $message .= "--------------------------------------\n";
        $message .= "Username: {$login}\n";
        $message .= "Password: {$password}\n\n";
        $message .= "If you lose of forget your password you can request a new password by visiting WinBolo.net and going to the login/signup page.";
        $message .= "\r\n\n\n--------------------\nThanks and Welcome.\nWinbolo.net";
        mail($email, $cfg_email_signup_subject, $message, "From: {$cfg_email_from_address}");
    }
    return "OK";
}
예제 #2
0
<?php

include_once "GCM_Loader.php";
$db = new BaseDB();
$gameName = $_REQUEST['gameName'];
if (isset($_REQUEST['email'])) {
    $email = $_REQUEST['email'];
} else {
    $email = '';
}
$gcmRegistrationId = $_REQUEST['gcmRegistrationId'];
$clanID = $_REQUEST['clanID'];
$retArray = array();
// Does player exist in the table
$exist = doesPlayerExist($gameName, $clanID);
$playerID = getPlayerID($gameName, $clanID);
if ($playerID === null) {
    echo json_encode([$retArray = array("responseOK" => false, "responseMessage" => "No such player")]);
    goto EndOfFile;
}
if ($exist === true) {
    // Update the existing record
    $sql = "\n            UPDATE gcm_users\n            SET email = '{$email}', gcm_regid = '{$gcmRegistrationId}'\n            WHERE game_name = '{$gameName}'\n        ";
    $result = $db->dbQuery($sql);
    if ($result == false) {
        echo json_encode([$retArray = array("responseOK" => false, "responseMessage" => dbGetErrorMsg())]);
    } else {
        echo json_encode(array($retArray = array("responseOK" => true, "responseMessage" => 'Record Updated Successfully')));
    }
} else {
    // Create a new record