我在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']实际上是空的。这显然是错的吗?我无法解决为什么它不起作用。
感谢您的帮助!
答案 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>';
}