作者:西瓜凉皮大夏天 | 来源:互联网 | 2014-06-18 09:01
Warning:Cannotsendsessioncookie-headersalreadysentby(outputstartedatF:php2000testphp:2)inF:php2000testphponline4Warning:Cannotsendsessioncachelimiter-headersalr
请看详细的错误程序和输出结果
-
-
- 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。