【发布时间】:2011-06-27 19:59:20
【问题描述】:
我面临着非常奇怪的问题。我有一个基于会话的搜索引擎。
由于未知原因,第三次页面重新加载后会话变量丢失。
这里是 PHP 配置:
session.auto_start On Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 0
session.hash_bits_per_character 5 4
session.hash_function 1 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/lib/php5 /var/lib/php5
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies On Off
session.use_trans_sid 0 0
您对如何调试此问题有任何想法吗?
【问题讨论】:
-
我会说如果会话工作两次,那么您的设置就可以了。您是否考虑过审查您的代码?
-
我能想到的唯一原因是您没有开始会话。尝试使用 var_dump 或 print_r 您的会话变量,看看它们在哪里丢失。最近,我刚遇到这样的事情,果然我没有开始我的会话。
-
除了 php.ini 设置,你应该确保你在你的代码中启动了 sesison(例如 session_start() 在你的 php 页面的最开始,但我想这已经完成了)。重新加载页面时是否从 http 重定向到 https - 因为这是会话丢失的情况?
-
@hornetbzz 会话已正确启动。这是带有分页的简单脚本。不知道发生了什么。
标签: php session session-variables