将php会话变量传递给多个页面

时间:2013-09-03 15:24:09

标签: php session session-storage

我在网站上传递会话变量时遇到问题。我可以在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

1 个答案:

答案 0 :(得分:0)

我已经使用PHP多次遇到过这个问题,这很令人沮丧,

我不会使用session_id([new_session_id])将会话ID设置为字符串的MD5(http://php.net/manual/en/function.md5.php)哈希值,例如用户名和一些任意字符串。用户名始终与用户数据相关联。

会话ID始终重新计算(可能是最低的性能成本),但您可以随时在需要时找到会话,因为结果是确定性的。

我不确定这是不是最好的方法,但在处理用PHP维护会话时,围绕这个想法似乎从来没有让我失望过。