我对会话有疑问。我想在用户点击提交按钮后显示正确的答案。我使用了isset,但即使未单击按钮也会显示正确的答案。我的代码有问题吗?
$sql13=mysql_query("select * from image WHERE toUser='".$_SESSION['email']."' order by id desc");
$score2=mysql_fetch_array($sql13);
$answer3=$score2['answer'];
if(isset($_SESSION['panswer']))
echo " The correct answer is : $answer3";
答案 0 :(得分:0)
问题可能是您从先前的测试中获得了变量集。使用显式比较确保变量不仅设置,而且还等于预期值:
if(isset($_SESSION['panswer']) && $_SESSION['panswer'] == '1')
echo " The correct answer is : $answer3";
您提供的代码不充分 - 我无论在哪里看到您显示表单的位置,处理POST数据,或设置/取消设置会话值。所以,这只是使用您提供的材料的最佳猜测。
答案 1 :(得分:0)
如果单击了您的按钮,则应该(最有可能)进行GET或POST请求。您正在检查SESSION变量,因此如果设置了变量,条件将为true - 无论是否单击该按钮。
您可以添加第二个条件,“检查”是否单击了该按钮。
提示:您可以添加一个通过GET或POST发送的隐藏变量,并检查该变量是否已设置(以及您现有的条件) - 这是一种方法。