Как я могу отобразить ‹script› alert('Fill Out Information')‹/script› при использовании функции header() php

то, что я пытаюсь сделать, это создать систему создания учетных записей с помощью php, моя проблема заключается в том, что я проверяю

кнопки отправки, если один или все входы пусты, пользователи будут отправлять ту же страницу, а не домашнюю страницу

моя проблема в том, что функция header(), которая отправляет пользователя на signup.php, закрывается

эхо "предупреждение('Привет')"; это способ, с помощью которого я могу отправить предупреждающее сообщение, чтобы мои пользователи

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

<?php
    if(isset($_POST['signup-submit'])){

        //my database connection    

        require "dbh.inc.php";

        $username=$_POST['uid'];

        $email=$_POST['mail'];

        $password=$_POST['pwd'];

        $passwordRepeat=$_POST['pwd-repeat']

        if(empty($username)||empty($email)||empty($password)||empty($passwordRepeat)){

            header("Location: ../signup.php? Fill out the  information");

            echo "<script>alert('Hello')</script>";

        }
    }
?>

person Wessam Osama Montasser    schedule 04.04.2020    source источник
comment
вы можете установить переменную сеанса, если пользователь не может правильно заполнить форму, перенаправить на ту же страницу и проверить переменную сеанса - если она существует, отобразите предупреждение javascript   -  person Professor Abronsius    schedule 04.04.2020


Ответы (1)


Если бы вы использовали переменную сеанса (которая сохранялась бы при перезагрузке страницы), вы могли бы использовать простой логический тест, чтобы определить, устанавливать ли эту переменную или нет, и проверять, когда страница перезагружается, если она существует, чтобы определить, отображать ли javascript или нет всплывающее окно После отображения предупреждения удалите переменную.

<?php

    session_start();

    if( $_SERVER['REQUEST_METHOD']=='POST' ){
        if( isset( $_POST['uid'], $_POST['mail'], $_POST['pwd'], $_POST['pwd-repeat'] ) ){

            /* ok */
            require "dbh.inc.php";
            $username=$_POST['uid'];
            $email=$_POST['mail'];
            $password=$_POST['pwd'];
            $passwordRepeat=$_POST['pwd-repeat'];


        }else{
            $_SESSION['error']=true;
            exit( header('Location: ../signup.php?error=true') );
        }
    }
?>
<html>
    <head>
        <title></title>
        <?php
            if( !empty( $_SESSION['error'] ) ){
                echo "
                <script>alert('Please fill out all fields')</script>";

                unset( $_SESSION['error'] );
            }
        ?>
    </head>
    <body>
        <!-- html contents -->
    </body>
</html>
person Professor Abronsius    schedule 04.04.2020