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是 在调用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目录的权限. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |