我正在为我的网站创建一个注册系统。当创建新帐户时,用户应该会看到一条消息,上面写着“成功创建了一个新帐户”,如果帐户不能创建,用户应该会看到一条消息,上面写着“无法创建新帐户”。
我这样做的目的是,如果用户没有在index.php上按下submit form按钮,而他们试图输入
websitename.com/verify_registration_form.php
在搜索栏中,它们被重定向至index.php
我的问题是,无论用户是否按下了submit form按钮,都会被重定向到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");
}
?>
https://stackoverflow.com/questions/55784204
复制相似问题