取消设置 PHP 会话变量不显示错误消息
Unsetting PHP session variable doesnt display error message
我试图在用户名-密码不匹配时显示错误消息。如果用户名和密码不匹配,我会设置一个 php 会话变量。然后我返回同一页面,如果设置了变量,则使用 if 条件 php 语句显示错误。但是当我在错误显示后取消设置变量时,页面上没有显示任何错误。
我在这个论坛看到过类似的问题。但是我似乎按照问题中的建议做所有正确的事情..请帮助我...
这是我的代码流的一部分...
<?php
ob_start();
session_start();
.
.
if ($result = $sth->fetch(PDO::FETCH_ASSOC)){
$_SESSION['admin_user'] = $result['id'];
header('Location: admin_user.php');
} else {
$_SESSION['user_found'] = 0;
header('Location: index.php');
}
.
.
//in html body
<?php
if (isset($_SESSION['user_found'])){
if($_SESSION['user_found'] == 0){
?>
<div>
<p class = "bg-danger text-danger">Username Password Mismatch</p>
</div>
<?php
unset($_SESSION['user_found']);
}
}
?>
现在,如果取消设置被删除..它工作正常。如果存在,则不会显示错误消息。
当我尝试你的代码时,一切似乎都运行良好。你这里没有提到的代码应该有问题..
解决问题而不是
unset($_SESSION['user_found']);
尝试改变变量的值..说
$_SESSION['user_found'] = -1;
尽量不要重新加载同一页面。删除 header 重定向。
if ($result = $sth->fetch(PDO::FETCH_ASSOC)){
$_SESSION['admin_user'] = $result['id'];
header('Location: admin_user.php');
} else {
$_SESSION['user_found'] = 0;
//header('Location: index.php');
}
我试图在用户名-密码不匹配时显示错误消息。如果用户名和密码不匹配,我会设置一个 php 会话变量。然后我返回同一页面,如果设置了变量,则使用 if 条件 php 语句显示错误。但是当我在错误显示后取消设置变量时,页面上没有显示任何错误。
我在这个论坛看到过类似的问题。但是我似乎按照问题中的建议做所有正确的事情..请帮助我...
这是我的代码流的一部分...
<?php
ob_start();
session_start();
.
.
if ($result = $sth->fetch(PDO::FETCH_ASSOC)){
$_SESSION['admin_user'] = $result['id'];
header('Location: admin_user.php');
} else {
$_SESSION['user_found'] = 0;
header('Location: index.php');
}
.
.
//in html body
<?php
if (isset($_SESSION['user_found'])){
if($_SESSION['user_found'] == 0){
?>
<div>
<p class = "bg-danger text-danger">Username Password Mismatch</p>
</div>
<?php
unset($_SESSION['user_found']);
}
}
?>
现在,如果取消设置被删除..它工作正常。如果存在,则不会显示错误消息。
当我尝试你的代码时,一切似乎都运行良好。你这里没有提到的代码应该有问题..
解决问题而不是
unset($_SESSION['user_found']);
尝试改变变量的值..说
$_SESSION['user_found'] = -1;
尽量不要重新加载同一页面。删除 header 重定向。
if ($result = $sth->fetch(PDO::FETCH_ASSOC)){
$_SESSION['admin_user'] = $result['id'];
header('Location: admin_user.php');
} else {
$_SESSION['user_found'] = 0;
//header('Location: index.php');
}