快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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

请看具体的错误程序和输出结果
<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



返回类别: 教程
上一教程: CGI安全漏洞资料速查 v1.0(转二)
下一教程: php & mysql三日通 2

您可以阅读与"关于使用 session_start 出现的 headers already sent错误的解释"相关的教程:
· 抛开Cookie使用SESSION-PHP中SESSION不能跨页传递问题的解决办法
· 关于使用文本域(TextArea)的一个问题
· 抛开Cookie使用SESSION-PHP中SESSION不能跨页传递问题的解决办法
· 仅用PHP4 Session实现的迷你购物篮(一)
· 关于session的几个补充函数
    微笑服务 优质保证 索取样品