我正在为我的网站创建一个注册系统。创建新帐户时,用户应看到显示“已成功创建新帐户”的消息,如果无法创建帐户,则用户应看到“无法创建新帐户”的消息。
我这样做,如果用户没有按下index.php上的提交表单按钮,他们会尝试输入
website那么.com/verify_registration_form.PHP
在搜索栏中,它们被重定向到index.php
我的问题是用户被重定向到index.php,无论他们是否按下了提交表单按钮。
这是index.php上的注册表单
<form action="verify_registration_form.php" method="post">
<input type="username" id="user_name" name="user_name placeholder="Username" required>
<input type="password" id="user_pass_word" name="user_pass_word" placeholder="Password" required>
<input type="email" id="user_email" name="user_email" placeholder="Email" required>
<input type="submit" id="submit_registration_form_button" name="submit_registration_form_button" value="Sign Up">
</form>
这是我的verify_registration_form.php文件的表单验证
<?php
session_start();
if(isset($_POST["submit_registration_form_button")) {
$connection = mysqli_connect("localhost", "root", "",
"websiteusers");
if(!$connection) {
echo "Could not connect to MYSQL database";
}else{
$connection = mysqli_connect("localhost", "root", "", "websiteusers");
$username = mysqli_real_escape_string($connection, $_POST["user_name"]);
$userpassword = mysqli_real_escape_string($connection, $_POST["user_pass_word");
$hasheduserpassword = password_hash($password, PASSWORD_DEFAULT);
$useremail = mysqli_real_escape_string($connection, $_POST["user_email"]);
$sql = "SELECT UserName FROM websiteusers WHERE UserName='$username' OR UserEmail='$useremail'";
$result = mysqli_query($connection, $sql);
$user = mysqli_fetch_assoc($result);
$errors = array();
if($user) {
if($user["UserName"] === $username) {
array_push($errors, "That username is already taken. Please choose another one.");
}
if($user["UserEmail"] === $useremail) {
array_push($errors, "That email address is already taken. Please choose another email address.");
}
if(count($errors) == 0) {
$user_name = $username;
$user_pass_word = $hasheduserpassword;
$user_email = $useremail;
$query = "INSERT INTO websitusers (UserName, UserPassWord, UserEmail)
VALUES ('$user_name', '$user_pass_word', '$user_email')";
$connection = mysqli_connect("localhost", "root", "", "websiteusers");
if(mysqli_query($connection, $query)) {
echo "Successfully created a new account";
$_SESSION['username'] = $user_name;
$_SESSION['success'] = "Registration was a success";
}else{
echo "Could not create a new account";
}
}
}
}
}else{
header("Location: index.php");
}
?>
这将检查用户是否已发布请求:
if($_SERVER['REQUEST_METHOD'] != 'POST')
{
//user didn't press the register button
}
else
{
//user pressed the register button
}