【求助】php.ini的設定



贊助商連結


adranimal
2003-03-27, 08:54 PM
關於session的部分
我是用XP加上apache架server
session.save_handler = files
session.save_path = "N;/path"
以上兩個設定不知該如何設定
設定成這樣我如果使用session_start();函數
就會出現以下的錯誤
Warning: session_start() [function.session-start]: open(/path\sess_f1053caa1612dc0b7fadae7d0b3b285d, O_RDWR) failed: No such file or directory (2) in c:\appserv\www\test\session.php on line 10

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\appserv\www\test\session.php:9) in c:\appserv\www\test\session.php on line 10

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\appserv\www\test\session.php:9) in c:\appserv\www\test\session.php on line 10

Warning: Unknown(): open(/path\sess_f1053caa1612dc0b7fadae7d0b3b285d, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (N;/path) in Unknown on line 0

Warning: session_start() [function.session-start]: open(/path\sess_f1053caa1612dc0b7fadae7d0b3b285d, O_RDWR) failed: No such file or directory (2) in c:\appserv\www\test\session.php on line 10

如果設定成
session.save_handler = "N;/path"
session.save_path = "N;/path"
就沒問題
但是當我執行OSC,apache就會當機
請問一下是什麼問題呢

贊助商連結


xmbs
2003-03-27, 10:58 PM
N;/path
這個好像怪怪的一般不是c:/XXX
你怎麼用分號?

adranimal
2003-03-28, 02:42 AM
感謝xmbs提醒我
改成session.save_path = "c:\windows\temp" 就OK了
當初那樣寫是因為php.ini的說明寫到
Argument passed to save_handler. In the case of files, this is the path
where data files are stored. Note: Windows users have to change this
variable in order to use PHP's session functions.
As of PHP 4.0.1, you can define the path as:
session.save_path = "N;/path"
所以我才改那樣子,可能是我會搞錯意思了吧。
現在只剩下一個問題
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\appserv\www\test\session.php:3) in c:\appserv\www\test\session.php on line 4
我session.cache_limiter = {nocache,private,public,}這三種都試過了
還是一樣
麻煩再請知道的人回覆一下

linjizen
2009-03-21, 10:46 AM
參考下面
PHP,Cannot send session cache limiter 的解決方法
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at .... )

發生原因
session_start() 之前不能有任何字元輸出,UTF-8 編碼裡的 BOM 也會被認為是 headers,有上述狀況 Session 將無法順利傳遞,並會顯示錯誤訊息。

解決方法1
1. 確定 <?php 和 session_start() 之間沒有其他字元,空格也要移除。
2. 若是 UTF-8 編碼,請用編輯器(例 UltraEdit、Notepad++...)將檔案裡的 BOM 移除。

解決方法2
以 ob_start() 開啟緩衝區將輸出資訊寫入緩衝區,可避免 headers 先於 session_start() 輸出,寫入緩衝區的內容可由 flush() 或 ob_end_flush() 輸出至瀏覽器,以下範例不會顯示錯誤訊息:
<?php
ob_start();
echo "test";
session_start();
ob_end_flush();
?>

我的推薦網站
網頁設計 (http://mail2000.idv.tw/webdesign.php) 生日禮物 (http://888.happy-live.com.tw)