在PHP中按下后退按钮时如何停止显示警告框?

waesrgd

我的 PHP 代码工作正常,但问题是,当我按下后退按钮时,警告对话框再次出现。登录时需要警报对话框,它可以正常工作。但是当我按下后退按钮时,它再次显示警告框。

<?php

if($_POST){
    $host = "localhost";
    $user = "root"; 
    $pass = "";
    $db = "erp";

    $userId = $_POST['myusername'];
    $password = $_POST['mypassword'];
    $conn = mysqli_connect($host,$user,$pass,$db);

    $query = "SELECT * from user where user_id='$userId'";
    $result = mysqli_query($conn,$query);
    $num = mysqli_num_rows($result);
    $row = mysqli_fetch_assoc($result);

        if($row["user_id"]==$userId){
            if($row["password"]==$password){     //when user_id and password 
                                                 //match, go to check 
                                                   //usertype
                switch($row["user_type_id"]){
                    case 1: session_start();
                            $_SESSION['erp']='true';
                            header('location:acc_setting.php');
                            break;
                    case 2: session_start();
                            $_SESSION['erp']='true';
                            header('location:dashboard.php');
                            break;
                    case 3: session_start();
                            $_SESSION['erp']='true';
                            header('location:c_course.php');
                            break; 
                }
            }
            else{
                echo '<script language="javascript">';
                echo 'alert("Invalid Password")';
                echo '</script>';
            }
        }
        else{
                echo '<script language="javascript">';
                echo 'alert("Invalid Username")';
                echo '</script>';
        }
}
?>
阿布罗修斯教授

忽略我在评论中提到的安全问题并专门回答您的后续问题how do I set a session var and redirect it to same page,以下内容可能会有所帮助。我在几个地方进行了简化,但在大多数情况下基本相同。

<?php
    if( $_POST ){

        session_start();

        $host = 'localhost';
        $user = 'root'; 
        $pass = '';
        $db = 'erp';
        $conn = mysqli_connect( $host, $user, $pass, $db );



        $destinations=array(
            1   =>  'acc_setting.php',
            2   =>  'dashboard.php',
            3   =>  'c_course.php'
        );



        $userId = $_POST['myusername'];
        $password = $_POST['mypassword'];


        /*
            This should be a prepared statement
            ->  $sql='select `password` from `users` where `user_id`=?';
            ->  $stmt=$conn->prepare( $sql );
            ->  $stmt->bind_param('s',$userid );
            etc etc

            The passwords should be hashed in the db using password_hash
            and verified in PHP using password_verify

            NEVER store plain text passwords
        */

        $query = "SELECT * from user where user_id='$userId'";


        $result = mysqli_query($conn,$query);
        $num = mysqli_num_rows($result);
        $row = mysqli_fetch_assoc($result);

            if( $row['user_id']==$userId ){
                /*
                    this should be password_verify 
                */
                if( $row['password']==$password ){

                    $_SESSION['erp']='true';

                    exit( header( sprintf( 'Location: %s', $destinations[ $row['user_type_id'] ] ) ) );

                } else{
                    $_SESSION['error']='Invalid Password';
                }
            } else{
                $_SESSION['error']='Invalid Username';
            }

            /*
                An error must have occurred, redirect back to oiginal page
            */
            exit( header( sprintf('Location: %s', $_SERVER['SCRIPT_NAME'] ) ) );
    }
?>

然后,在表单所在的原始页面中

<form>
    <!--
        various form elements
    -->
    <?php
        if( !empty( $_SESSION['error'] ) ){
            echo $_SESSION['error'];
            unset( $_SESSION['error'] );
        }
    ?>
</form>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果在javascript中按下“后退”按钮,如何显示警报消息?

按下按钮时如何显示警报对话框?

片段中按返回按钮时如何显示警告消息

按下后退按钮后如何在循环时停止

按下按钮时未显示警报对话框

按下后退按钮时不要停止服务

按下按钮时如何显示与FutureBuilder的对话框?

对话框打开时检测后退按钮按下

按下后退按钮时,如何取消选择单选按钮?

当按下后退按钮时,再次以HTML显示隐藏的元素

react-router + antD /按下后退/前进按钮时如何突出显示菜单项?

按下后退按钮时如何显示第一个片段?

在警报对话框中的验证单选按钮中显示吐司时,如何显示警报对话框

按下按钮时如何停止动画

按下后退按钮时如何清除数据

按下和后退时如何更改按钮的图像?

按下后退按钮时如何实际捕捉?

按下后退按钮时如何检查现有活动

按下导航后退按钮时如何调用函数?

按下后退按钮时如何提示退出?

按下后退按钮时如何清除Fragment上的ListView?

按下后退按钮时如何刷新页面

在 webview 中按下后退按钮时返回

按下模拟器中的后退按钮时如何调用方法

在完整应用程序中按下后退按钮时如何添加声音

如何避免在主页片段中按下后退按钮时出现近 1 秒的延迟

当用户在谷歌浏览器中按下后退按钮时,如何加载上次状态?

在启动活动中按下后退按钮时如何完成其他活动?

在JavaFX中按下按钮时如何显示图像