PHP: Как остановить выполнение кода при обновлении? - PullRequest
0 голосов
/ 30 сентября 2019

Я новичок в программировании и пытаюсь создать простую форму входа в систему с HTML, PHP и Bootstrap. У меня есть страница входа и страница регистрации. Я хотел отобразить сообщение об успехе, как только пользователь был создан. Но он продолжает отображаться, когда я возвращаюсь с другой страницы, а также когда я обновляю страницу.

С заголовком ("Location: registration.php");Я перенаправляю на ту же страницу. Это предотвращает вставку в базу данных, когда я обновляю страницу. Смотрите мой код ниже от "registration.php".

session_start();

if(isset($_POST['add_user'])) {
//When submitted store entered data in a variable
$add_username = $_POST['add_username'];
$add_password = $_POST['add_password'];

//Database query
$query = "INSERT INTO users(username, user_password) VALUES('{$add_username}', '{$add_password}')";
$result = mysqli_query($connection, $query);

    if(!$result) {
        die("QUERY FAILED" . mysqli_error($connection));
    } else {
        $_SESSION['success_message'] = " ";
        header('Location: ' . $_SERVER['PHP_SELF']);
         $_SESSION['success_message'] = "<div class='alert alert-success' role='alert'><strong>User Created</strong><br><a href='index.php'>Log In</a></div>";
        exit();
    }
}

Ответы [ 2 ]

0 голосов
/ 30 сентября 2019

Попробуйте это

if (empty($_SESSION['success_message'])) {
  // set and display message
}

Таким образом, вы будете отображать сообщение только в первый раз.

0 голосов
/ 30 сентября 2019

Вы можете попробовать этот код, чтобы избежать проблемы.

 if (isset($_POST['submit'])) {

        // ... your code here

        header('Location: ' . $_SERVER['PHP_SELF']);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...