0

我在我的网站上传递会话变量时遇到问题。我可以在 ads/page2.php 上回显我的会话变量,但是当我转到第三页时,会话就消失了。

有人可以帮我解决这个问题吗?

登录.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
4

1 回答 1

0

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

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

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

我不确定这是否是最好的方法,但是在处理 PHP 中的会话时,围绕这个想法的东西似乎从未让我失望过。

于 2013-09-03T15:38:27.137 回答