Перенаправление пользователя на index.php, даже если установлен submit_registration_form_button

0

Я создаю систему регистрации для моего сайта. При создании новой учетной записи пользователь должен увидеть сообщение "Успешно создана новая учетная запись", а если учетная запись не может быть создана, пользователь должен увидеть сообщение "Не удалось создать новую учетную запись".

Я сделал так, что если пользователь не нажимает кнопку отправки формы на index.php, и они пытаются набрать

websitename.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");

}

?>
Теги:

1 ответ

0

Это проверяет, отправил ли пользователь запрос:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню