php – session_start()每刷新一次创建新会话

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – session_start()每刷新一次创建新会话脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > How to fix “Headers already sent” error in PHP                                    11个
我遇到了session_start()的问题.它每次刷新/加载页面时都会创建一个新会话.

这是代码

<?PHP
    $bob = session_id();
    echo "Session ID on load is ".$bob;
    echo "<br>";
    if($bob==""){
        session_start();
        $bob = session_id();
        echo ' session ID currently is '.$bob;
    }
// a bunch more stuff

当我加载页面时,我得到以下内容

加载时的会话ID是
会话ID目前为ed320bc5e24c871c9db8ea30e6796c14(或变体)

如果我刷新页面,我得到:

加载时的会话ID是
会话ID目前为fbd69d01d511a7be382799dca7279a86(或变体)

调用session_start()之前,会话ID始终为空,并且它始终是新的session_id()

它在所有浏览器中执行此操作,我已检查以确保cookie已打开.

会话保存路径为/ tmp.我不确定它到底在哪里,但通过我的根目录和所有其他目录,我找不到会话文件(假设它看起来像sess_fbd69d01d511a7be382799dca7279a86).

因此我认为保存路径正在发生一些事情,但我现在太新了,无法确切知道,服务器管理员是相当无益的.我的下一步诊断问题应该是什么?服务器正在运行5.3.22.

PHPinfo是here

谢谢你的帮助.

ps如果您愿意,可以访问pcm.pcmxa.COM查看问题.

解决方法

如果您的会话目录(如您所说的那样/ tmp)不可写,那么它将无法保存,并且每次都必须重新生成一个新目录.以下是验证方法

if ( !is_writable(session_save_path()) ) {
   echo 'Session save path "'.session_save_path().'" is not wrITable!'; 
}

如果是这种情况,您需要让服务器管理员为您的Web服务器运行的用户提供写入/ tmp目录的权限.

脚本宝典总结

以上是脚本宝典为你收集整理的php – session_start()每刷新一次创建新会话全部内容,希望文章能够帮你解决php – session_start()每刷新一次创建新会话所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。