function register_user($username, $password, $email) { $connection = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PWD); if (does_username_already_exist($username)) { //BAD username already exists return [false, "Username already exists!"]; } if ($email != NULL && does_email_already_exist($email)) { //BAD email already exists; return [false, "E-mail already exists!"]; } $seconds_since_last_registration = seconds_since_last_registration(); if ($seconds_since_last_registration < 60) { //BAD registering too soon after last registration return [false, "Too soon since last registration. Wait " . (SECS_BTWN_REGISTRATIONS - $seconds_since_last_registration) . " seconds then try again."]; } $password_hash = password_hash($password, PASSWORD_DEFAULT); if ($password_hash == false) { //BAD password hash failed return [false, "Unable to create username. Please try again!"]; } $statement = $connection->prepare("insert into users(username, password, email) values (?, ?, ?)"); $statement->bindValue(1, $username, PDO::PARAM_STR); $statement->bindValue(2, $password_hash, PDO::PARAM_STR); $statement->bindValue(3, $email, PDO::PARAM_STR); $statement->execute(); return [true, "Username created!"]; }
create_requirement(filter_input(INPUT_POST, 'required_for', FILTER_SANITIZE_NUMBER_INT), filter_input(INPUT_POST, 'required_by', FILTER_SANITIZE_NUMBER_INT)); break; case "create_tag": create_tag(filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT), filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING)); break; case "create_todo": create_todo(filter_input(INPUT_POST, 'achievement_id', FILTER_SANITIZE_NUMBER_INT)); break; case "create_work": create_work(filter_input(INPUT_POST, 'action_id', FILTER_SANITIZE_NUMBER_INT)); break; case "deactivate_achievement": deactivate_achievement(filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT)); break; case "does_username_already_exist": echo json_encode(does_username_already_exist(filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING))); break; case "remove_achievement": remove_achievement(filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT)); break; case "delete_action": delete_action(filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT)); break; case "delete_note": delete_note(filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT)); break; case "delete_relation": delete_relation(filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT)); break; case "delete_requirement": delete_requirement(filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT));