<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/php-lost-session/</link>
<title><![CDATA[PHP中Header位置错误导致SESSION丢失 ]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[编程杂谈]]></category>
<pubDate>Tue, 24 Aug 2010 07:59:56 +0000</pubDate> 
<guid>https://www.heckjj.com/php-lost-session/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 微软雅黑;">最近忙于一项PHP项目，忙的焦头烂额。昨天晚上加班到12点将模板解析部分进行了修改优化，今天早上开始测试，结果发现通过SESSION验证的所有功能都不能使用了。于是打开Firefox，使用firebug中的cookie插件查看，结果发现，session ID统统不见了，COOKIE里面更是一干二净，心中大惊。<br/><br/>&nbsp;&nbsp; 仔细排查下来，代码并无不妥。开始以为$GLOBALS和session冲突，但是经过试验发现二者没有影响。后来发现一个奇怪的问题，凡是有HTML代码块的地方，SESSION都会丢失。于是注释掉语句逐一排查。最后注释到header("content-type:text/html; charset=utf-8");的时候，SESSION不再丢失。于是怀疑是header语句失败才使Set-Cookie失败。于是将此语句前加一@ 屏蔽一切错误，但不见效果。于是怀疑Header语句位置不对，将其改到session_start()后，问题消失。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;开始以为是header语句出错导致的，后来发现，header语句在session_start()前就会引起错误，在修改代码时我移动了header的位置，但并未注意！终于找到病因了，分享下给有同样问题的朋友。 </span><br/>Tags - <a href="https://www.heckjj.com/tags/php/" rel="tag">php</a> , <a href="https://www.heckjj.com/tags/session/" rel="tag">session</a> , <a href="https://www.heckjj.com/tags/%25E4%25B8%25A2%25E5%25A4%25B1/" rel="tag">丢失</a>
]]>
</description>
</item><item>
<link>https://www.heckjj.com/php-lost-session/#blogcomment</link>
<title><![CDATA[[评论] PHP中Header位置错误导致SESSION丢失 ]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/php-lost-session/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>