我知道这是非常简单的事情,但我不知道这一点。我在同一页上有一个注册表单,当任何条件与代码匹配时,会显示一些会话变量。PHP:我的session_variables显示当页面刷新
的代码结构是这样的:
<?php
session_start();
if(isset($_POST['signup'])
{
if(condition)
{
$_SESSION['err1']="string";
}
else
{
$_SESSION['err2']="string";
}
}
?>
//HTML form
<?php if(isset($_SESSION['err1']) {?>
<li><?php echo $_SESSION['err1'];}?></li>
<?php if(isset($_SESSION['err2']) {?>
<li><?php echo $_SESSION['err2'];}?></li>
//rest of the form
我有更多的块的if-else在我的代码。最初,当条件匹配时,将显示会话消息。但是一旦页面刷新另一个会话消息就会显示以前的会话消息。
这是正确的编码方式吗?因为我想在html表单中显示错误消息。
我不明白的问题之间有任何的三条线。什么形式?我没有看到任何表格。 – Shoe
这可能是因为你没有清空会话变量。 在2个HTTP请求之间,会话保留在服务器上(每次请求重新装入)。 因此,如果您在第一次调用时在$ _SESSION ['error1']'上发送消息,它会显示它。然后,在第二次加载时,如果您要在'$ _SESSION ['error2']'上输入消息,您将会收到'error1'的消息,因为会话会保留您的数据。显示表单后,您应该清空所有会话消息。 – MatRt