我刚刚将我的应用程序从本地WAMP迁移到实际的在线服务器.这导致会话ID未显示时出现问题.
这些是我的会话设置:
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
Run Code Online (Sandbox Code Playgroud)
错误代码非常简单:
$sId = session_id();
if ($sId == '') { session_start(); }
Dav*_*eto 12
我刚刚解决了同样的问题.
事实证明,cookie PHPSESSID(保留会话记录)已被发送,但服务器忽略了它,因此会话未得到维护,并且每次页面重新加载或更改时服务器都会重新启动会话.
问题是我在我的wp-config.php这行:
@ini_set('session.cookie_secure','On');
Run Code Online (Sandbox Code Playgroud)
这意味着如果连接不安全,则会忽略每个cookie,因此服务器会重新启动PHPSESSID cookie和会话.
检查你的wp-config.php或你的init.php.是cookie的问题.
session_start应该是文件中的第一件事,之后您可以获取会话 ID:
session_start();
$sId = session_id();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18479 次 |
| 最近记录: |