网站地图    收藏   

主页 > php专栏 > php会话 >

关于使用session_start 出现的headers - php会话

来源:自学PHP网    时间:2014-11-27 20:45 作者: 阅读:

[导读] Warning: Cannot send session cookie - headers already sent by (output started at F:php2000test php:2) in F:php2000test php on line 4Warning: Cannot send session cache limiter - headers already sent...

关于使用session_start 出现的headers

请看详细的错误程序和输出结果

  1. <html> 
  2. <? 
  3. echo "testing ... "
  4. session_start(); 
  5. ?> 
  6. </html> 

输出为

  1. testing ...  
  2. Warning: Cannot send session cookie - headers already sent by (output started at F:php2000test.php:2) in F:php2000test.php on line 4 
  3. Warning: Cannot send session cache limiter - headers already sent (output started at F:php2000test.php:2) in F:php2000test.php on line 4 

分析:主要原因,php.ini里有关于session 的定义,默认是使用 cookie

[session]

session.use_cookies = 1 ; whether to use cookies

这句表明使用 cookies 存储session 而 cookies的设置必须在正式 htm 之前,也就是只能在 header 里面才行,所以造成这个错误的发生,我们修改程序为:

  1. <? 
  2. echo "testing ... "
  3. session_start(); 
  4. ?> 

同样错误,因为 echo 已经输出了,我们修改程序为

  1. <? 
  2. $i=1; 
  3. session_start(); 
  4. ?> 

运行正确表明在session_start的前面可以有计算语句,但是不能有输出语句,我尝试过修改:

  1. session.use_cookies = 0 ; whether to use cookies 

但是没有成功,希望知道答案的朋友通知我,如何去掉cookie方式的session。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论