两天前我遇到了一个非常烦人的问题,关于 PHP 会话,因为它们似乎不会在页面中持续存在,而且 session_start(); 函数启动一个新会话而不是恢复现有会话。这甚至发生在重新加载时。
这是我的 php.ini 中的会话部分的样子。
Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn Off Off
session.cache_expire 180 180
session.cache_limiter no value no value
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 0 0
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 1 1
我正在运行一个 Ubuntu 服务器,并且 www-data 用户在 /tmp 文件夹上获得了写入和读取权限。会话文件存在,但出于某种原因它选择启动一个新文件。
操作系统:Ubuntu 12.04 PHP 版本:5.3.1 Web 服务器:Apache 2.2
提前感谢您的任何建议或建议,当然,感谢您的宝贵时间!
[问题解决了]
问题解决了,我必须将 cookie 域设置为“example.com”(替换为您自己的域)并确保我将重定向到“exemple.com/bla/bla”而不是“www.exemple.com/bla” /bla”。