我刚刚将我的应用程序从本地WAMP迁移到实际的在线服务器.这导致会话ID未显示时出现问题.
>我检查了session_start之前输出的不需要的字符
>我似乎无法在我的/ tmp中找到任何会话文件
这些是我的会话设置:
session.auto_start Off Off session.bug_compat_42 Off Off 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 1000 1000 session.gc_maxlifetime 1440 1440 session.gc_probability 1 1 session.hash_bits_per_character 5 5 session.hash_function 0 0 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path /tmp /tmp session.serialize_handler PHP PHP session.use_cookies On On session.use_only_cookies On On session.use_trans_sid 0 0
>在线服务器正在运行:PHP版本5.3.9,而WAMP是:PHP版本5.3.5.
>通过查看发送的标头和每个页面加载中的响应,我得到以下内容,set-cookie发送相应的会话ID,并且收到的响应发送一个新的响应,就像没有请求任何内容一样.
>我在预览URL(SSL上)上运行该站点.我不知道这是否有任何关系,我的域名尚未注册.
>错误代码简单如下:
$sId = session_id();
if($sId ==”){session_start(); }
我刚刚解决了同样的问题.
事实证明,cookie PHPSESSID(保留会话记录)已被发送,但服务器忽略了它,因此会话未得到维护,并且每次页面重新加载或更改时服务器都会重新启动会话.
问题是我在我的wp-config.php这行:
@ini_set('session.cookie_secure','On');
这意味着如果连接不安全,则会忽略每个cookie,因此服务器会重新启动PHPSESSID cookie和会话.
检查你的wp-config.php或你的init.PHP.是cookie的问题.