<?php
class Register
{
public static function HandleRegister()
{
global $db;
global $User;
global $Session;
if(isset($_POST['username'], $_POST['password'], $_POST['email'], $_POST['realname']))
{
$username = $_POST['username'];
$password = hash_string($_POST['password']);
$email = $_POST['email'];
$realname = $_POST['realname'];
$figure = DEFAULT_LOOK;
$ip = USER_IP;
if($User->CheckBan($_SERVER['REMOTE_ADDR']))
{
die('You\'re IP banned, go away.');
exit;
}
if(empty($username) || empty($password) || empty($email) || empty($realname))
{
redirect('?error=fields');
exit;
}
if($User->GetData('username', $username) != false)
{
redirect('?error=username');
exit;
}
$filter = preg_replace("/[^a-z\d\-=\?!@:\.]/i", "", $username);
if($filter != $username)
{
redirect('?error=invalid');
exit;
}
$filter = preg_replace("[!\?@:\\\.]", "", $username);
if($filter != $username)
{
redirect('?error=invalid');
exit;
}
// Create the user record
$User->createUser($username, $password, $email, $realname, $figure);
// Get the user's ID
$query = $db->query('SELECT `id` FROM `users` WHERE `username` = "' . $username . '"');
$id = $db->result($query);
// Insert the user_info.
$db->query("INSERT INTO `user_info` (`user_id` ,`bans` ,`cautions` ,`reg_timestamp` ,`login_timestamp` ,`cfhs` ,`cfhs_abusive`)VALUES ('" . $id . "', '0', '0', '" . time() . "', '0', '0', '0');");
// Register the session & log it
$Session->Set('username', $username);
// Redirect the user to the "me" page.
redirect('me.php');
}
}
public static function ErrorHandler()
{
if(isset($_GET['error']))
{
echo "<div id='error'>";
switch($_GET['error'])
{
case 'passwords':
echo "Both passwords are required.";
break;
case 'username':
echo "That username is already in use.";
break;
case 'fields':
echo "All fields are required.";
break;
case 'invalid':
echo "There are invalid characters in your username!";
break;
}
echo "</div>";
}
}
}