即使提交了submit_registration_form_button,也将用户重定向到index.php

问题描述 投票:0回答:1

我正在为我的网站创建一个注册系统。创建新帐户时,用户应看到显示“已成功创建新帐户”的消息,如果无法创建帐户,则用户应看到“无法创建新帐户”的消息。

我这样做,如果用户没有按下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");

}

?>
php html mysql
1个回答
1
投票

这将检查用户是否已发布请求:

    if($_SERVER['REQUEST_METHOD'] != 'POST')
    {
        //user didn't press the register button
    }
    else
    {
        //user pressed the register button
    }

© www.soinside.com 2019 - 2024. All rights reserved.