【发布时间】:2013-02-19 22:04:14
【问题描述】:
页面下方的代码在 GET 请求或刷新浏览器时保持会话,但是当我提交表单时会话数据丢失。
$user=$_POST['user']; $pass=$_POST['pass'];
if ($_POST['user'])
{ if($user==$un and $pass=$pw)
{ $_SESSION['uid']=$Xid;header('Location: '.$uri.'?welcome'); }
else { $msg="chybny login"; }
}
if(isset($_GET['logout'])) { session_destroy(); header('Location: '.$uri); }
$cnt=$_SESSION['cnt']+1; $_SESSION['cnt']=$cnt;
上面是登录代码,它在验证后将我重定向到欢迎页面,但是会话丢失了。如果我只是刷新或重复加载页面而不提交,则会话通过回显会话变量 cnt(计数为 1、2、3、...)而保持
提交表单后,我看到会话丢失并且cnt 变量也被重置?
【问题讨论】:
-
完整性检查:你有没有打电话给
session_start()? -
logout在哪里设置为 true?同意上面的海报,添加更多你的代码。不要假设你知道错误在哪里。 -
logout 没有设置在任何地方,只是未来计划添加带有 href="?logout" 的链接
-
会话开始在那里,会话在纯 GET 请求时工作
-
好吧,要么你没有在哪里和尽可能频繁地打电话给
session_start();,要么你以某种方式破坏它。
标签: php session session-variables