public static function register(&$return) { /* make sure all data is set */ foreach (self::$registerFormInputs as $value) { if (empty($_POST[$value]) || !isset($_POST[$value])) { $return['field'] = $value; $return['error'] = 'No data!'; return $return; } } /* name less then 20 characters */ $name = formatString($_POST['register_name']); /* format the name to make it look nicer */ if (strlen($name) > 20) { $return['field'] = 'register_name'; $return['error'] = 'Name too long!'; return $return; } /* name only a-z09 */ if (preg_match("/^[a-zA-Z0-9]+\$/", $name) == 0) { $return['field'] = 'register_name'; $return['error'] = 'Invalid characters!'; return $return; } /* valid email */ $email = filter_var($_POST['register_email'], FILTER_SANITIZE_EMAIL); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $return['field'] = 'register_email'; $return['error'] = 'Invalid email'; return $return; } $pass = $_POST['register_pass']; $confPass = $_POST['register_conf_pass']; /* passwords match */ if ($pass !== $confPass) { $return['field'] = 'register_pass'; $return['error'] = 'Passwords do not match!'; return $return; } /* data should be valid now */ /* verify name dosn't exist */ if (self::nameExists($name)) { $return['field'] = 'register_name'; $return['error'] = 'That username is already taken.'; return $return; } /* verify email dosn't exist */ if (self::emailExists($email)) { /* dosnt work ! */ $return['field'] = 'register_email'; $return['error'] = 'An account with that email already exists!'; return $return; } if (self::hasTooManyAccounts()) { $return['error'] = 'Too many accounts created from your IP! Please use one of your existing accounts.'; return $return; } /* ready to create a new user */ $user = new Account_User(); $user->name = $name; $user->joinDate = 'CURRENT_TIMESTAMP'; $user->email = $email; $user->privelage = 'REGULAR'; $user->password = password_hash($pass, PASSWORD_DEFAULT); /* create salt, encode password */ $user->createIP = findIPLong(); $user->lastIP = findIPLong(); if ($user->insert('account_user') !== false) { $return['sucess'] = true; } return $return; }