0

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

if (isset($_GET['c'])) {
unset($_SESSION['city']); 
$_SESSION['city'] = $_GET['c'];
}
if (empty($_SESSION['city'])) {
$_SESSION['city']='07400';
}
$city = $_SESSION['city'];

在我点击三个页面后,城市又回到了 07400 .. 在某种程度上.. 会话变空了.. 但我不知道怎么...

4

2 回答 2

1

如果无法测试/调试您的项目,很难找出问题所在。不过,这可以帮助您走上正确的轨道:

我会在您请求的每个页面上给出会话 IDprint(session_id());:.

如果session-id 改变了,你已经失去了你的 session,应该检查 id 是如何传递的,以及 session 是如何重新创建的(cookie、id in url、session_start)。我还会error_reporting(E_ALL);在页面开头编写代码,以查看您是否收到标头已发送警告。

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

于 2012-07-21T18:32:11.623 回答
0

在编写脚本足够长的时间后,我发现 city 脚本没有任何问题...... Sessions 没有任何问题.. 但是由于脚本后面的脚本错误,它破坏了 $_SESSION['city '].. 感谢所有回复.. 并感谢您提供查找错误的提示,以及可能更改的会话 ID...

于 2012-07-23T17:48:48.297 回答