php登录表单密码无效的消息问题

时间:2014-12-08 23:07:19

标签: php mysql session post

我在index.php页面上有一个登录表单,我有一个login.php文件来连接和检查MySQL数据库。如果密码或用户名错误,我想返回表单并显示错误消息。

目前,提交后login.php中的代码如下:

//database checking...
$num_row = mysql_num_rows($result);
        if( $num_row == 1 ) {
            $_SESSION['login_user']=$username;
            header("location:startscreen.php");                     
        }
        else{
            $_SESSION['login_error'] = "Your username or password is incorrect";
            header("location:index.php");
            exit();
        }

并在index.php页面中:

<?php 
if (! empty($_SESSION('login_error'])) {
echo '<div>'.$_SESSION('login_error').'</div>';
}
else {echo '<div>empty error msg</div>';}
?>

现在的情况是:当密码正确时,页面正确流动,但如果密码错误,它会返回到表单,但$ _SESSION ['login_error']实际上是空的。这显然是错的吗?我无法解决为什么它不起作用。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在脚本

上添加 session_start();

将代码替换为各自文件中的以下代码。这是更有效的编码方式。

<强>的login.php

//database checking...
$num_row = mysql_num_rows($result);
if( $num_row ) {
    $_SESSION['login_user']=$username;
    header("location:startscreen.php");                     
} else{
    $_SESSION['login_error'] = "Your username or password is incorrect";
    header("location:index.php");
    exit();
}

index.php

 if ( isset($_SESSION['login_error']) and !empty($_SESSION['login_error']) ) {
        echo '<div>'.$_SESSION('login_error').'</div>';
    } else {
        echo '<div>empty error msg</div>';
    }