. */ define('ROOT', rtrim($_SERVER['DOCUMENT_ROOT'], '/') . '/'); require_once ROOT . '/php/session.php'; require_once ROOT . '/php/database.php'; require_once ROOT . '/php/mail.php'; if ($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST['username']; $password = $_POST['password']; $confirmpassword = $_POST['confirmpassword']; $email = $_POST['email']; if ($confirmpassword != $password) { echo "Passwords do not match!"; exit; } $hashed_password = password_hash($password, PASSWORD_DEFAULT); $code = rand(1000, 9999); try { $sql = "INSERT INTO users (username, email, password, verification_code, status) VALUES (:username, :email, :password, :code, :status)"; $user_id = insert_row($sql, [ 'username' => $username, 'email' => $email, 'password' => $hashed_password, 'code' => $code, 'status' => 'none' ]); set_user_id($user_id); } catch (\PDOException $e) { if ($e->getCode() == 23000) { echo "Error: Username or email is already taken."; } else { echo "Error: " . $e->getMessage(); } exit; } $subject = "GNUfault.org Verification Code"; if (send_mail($email, $subject, (string)$code)) { header("Location: verify"); } else { echo "Failed to send"; exit; } } ?>