我在网站上传递会话变量时遇到问题。我可以在advertiser / page2.php上回显我的会话变量,但是当我转到第3页时,会话就消失了。
有人可以帮我解决这个问题吗?
的login.php
session_start();
$_SESSION['account_id']= $account_id;
$_SESSION['user_email']= $user_email;
广告客户/使page2.php
session_start();
广告客户/ page3.php
session_start();
这是我的phpinfo()
上的设置Directive Local Value Master Value
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 100 100
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 no value no value
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0
答案 0 :(得分:0)
我已经使用PHP多次遇到过这个问题,这很令人沮丧,
我不会使用session_id([new_session_id])
将会话ID设置为字符串的MD5(http://php.net/manual/en/function.md5.php)哈希值,例如用户名和一些任意字符串。用户名始终与用户数据相关联。
会话ID始终重新计算(可能是最低的性能成本),但您可以随时在需要时找到会话,因为结果是确定性的。
我不确定这是不是最好的方法,但在处理用PHP维护会话时,围绕这个想法似乎从来没有让我失望过。