程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 關於使用session_start出現的headersalreadysent錯誤的解釋

關於使用session_start出現的headersalreadysent錯誤的解釋

編輯:關於PHP編程

請看詳細的錯誤程序和輸出結果
<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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved