大佬教程收集整理的这篇文章主要介绍了php – 页面刷新后会话消失,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
基本上,在我设置会话的那一刻,在页面刷新之后,此会话消失.不应该留一段时间吗? (可以使用set_cookie_params等设置,但这是另一个主题)
ini_set('session.cookie_httponly',1); ini_set('session.entropy_file','/dev/urandom'); ini_set('session.hash_function','whirlpool'); ini_set('session.use_only_cookies',1); ini_set('session.cookie_secure',1); session_name("RANDOMID"); session_start(); if (isset($_SESSION['uid'])) { if ($_SESSION['ipremote'] !== getUserIP() && $_SESSION['useragent'] !== getUserAgent()) { session_unset(); session_destroy(); session_regenerate_id(true); } } else { session_regenerate_id(true); $_SESSION['ipremote'] = getUserIP(); $_SESSION['useragent'] = getUserAgent(); }
然后在我的login.PHP文件中,当用户插入正确的信息时:
$_SESSION['uid'] = 3; header("LOCATIOn: index.PHP"); exit;
重定向uid会话后消失的问题:我在index.PHP页面的末尾放了一个$_SESSION变量的var_dump,我只看到每次在else条件下设置的IP和用户代理.
编辑:我试图用session_start()替换会话初始化的所有内容;它工作,我不明白为什么这个安全会话初始化它不起作用,使会话消失.
否则,解释很简单:
ini_set('session.cookie_secure',1);
这使得PHP使用安全标志设置会话cookie,这意味着只允许浏览器通过安全连接发出请求来发送此cookie.
因此,如果您实际上仅通过http进行测试,那么会话cookie将不会与下一个请求一起发回,因此PHP找不到任何会话ID,因此当您调用session_start时会启动一个全新的会话…
以上是大佬教程为你收集整理的php – 页面刷新后会话消失全部内容,希望文章能够帮你解决php – 页面刷新后会话消失所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。