php专区

 首页 > php专区 > PHP进阶 > 网络编程 > 关于使用 session_start 出现的 headers already sent错误的解释

关于使用 session_start 出现的 headers already sent错误的解释

分享到:
【字体:
导读:
         摘要:关于使用 session_start 出现的 headers already sent错误的解释 请看详细的错误程序和输出结果<html><?echo "testing...

关于使用 session_start 出现的 headers already sent错误的解释
请看详细的错误程序和输出结果

echo "testing ... ";
session_start();
?>


输出为
testing ...
Warning: Cannot send session cookie - headers already sent by (output started at F:php2000test.php:2) in F:php2000test.php on line 4

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 里面才行,所以造成这个错误的发生

我们修改程序为
echo "testing ... ";
session_start();
?>
同样错误,因为 echo 已经输出了

我们修改程序为
$i=1;
session_start();
?>
运行正确表明在session_start的前面可以有计算语句,但是不能有输出语句

我尝试过修改
session.use_cookies = 0 ; whether to use cookies
但是没有成功,希望知道答案的朋友通知我,如何去掉cookie方式的 session
关于使用 session_start 出现的 headers already sent错误的解释
分享到:
如何混合使用XML和PHP?
如何混合使用XML和PHP? 你必须要关掉 php3.ini 配置中的短标记功能,将short_tags设为 0,或是在Apache配置文件中使用php3_short_tags配置 。(你也可以在区域中使用。) 也可以在脚本中使用short_tags()函数让短标记功能有用或无效。 如何混合使用XML和PHP?
简单的页面缓冲技术
简单的页面缓冲技术作者:limodou 前言   其实说它为技术,也许不能说是真正的技术。这只不过是我自已想出来的页面处理的方法,当然与别人 的想法可能是一致的。不过我还是想给它一个好听的名字。那么我这里所指的页面缓冲是什么呢?就是指将动态生成的页面保存起来,供下一次的使用。这样下一次访问它可能就不需要动态...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……