PHP会话以某种方式重置

时间:2012-07-21 14:46:34

标签: php session

我正在一个网站上工作,当前用户可以选择不同的城市进行查看。我不想将城市保留在网址中,我不想依赖cookie,如果客户端不接受cookie ..我在会话中这样做,但不知怎的,会话很早就停止了,我不明白出了什么问题。

if (isset($_GET['c'])) {
unset($_SESSION['city']); 
$_SESSION['city'] = $_GET['c'];
}
if (empty($_SESSION['city'])) {
$_SESSION['city']='07400';
}
$city = $_SESSION['city'];
点击三页后,城市又回到了07400 ..在某种程度上......会议空了......但我不知道怎么样......

2 个答案:

答案 0 :(得分:1)

如果没有测试/调试项目的可能性,很难找到问题所在。然而,这可以帮助您走上正确的轨道:

我会在您要求的每个页面上发出会话ID print(session_id());

如果会话ID更改,您已丢失会话并应检查ID的传递方式以及会话是否已重新创建(cookie,ID为url,session_start)。我还会在页面的开头写代码error_reporting(E_ALL);,看看你是否收到了已经发送标题的警告。

如果会话ID保持不变,则会正确地重新创建会话。然后我会在项目中搜索代码,写入会话并可能重置变量。

答案 1 :(得分:0)

在编写了足够长的脚本之后,我发现城市脚本没有任何问题...... Sessions没有错。但是由于脚本中的脚本错误,它会破坏$ _SESSION ['city'] ..感谢所有回复..感谢寻找错误的提示,也许是改变了会话ID ......