| 网站首页 | 建站学院 | 资源下载 | 建站教程 | 图片素材 | 网贝社区 | 
您现在的位置: 网贝建站 >> 建站学院 >> PHP技术 >> 常见问题 >> 正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
没有相关文章
关于使用 session_start 出现的 headers already sent错误的解释         
关于使用 session_start 出现的 headers already sent错误的解释
作者:未知 文章来源:网海里拾的贝壳 点击数: 更新时间:2004-8-16 16:25:41
请看详细的错误程序和输出结果
<html>
<?
echo "testing ... ";
session_start();
?>
</html>

输出为
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
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)