1
我遇到了一個非常有趣的問題,試圖調試我的自定義PHP會話處理程序。出於某種原因,我可以通過會話處理器一直設置cookie,直到寫入函數開始。會話處理程序中的PHP cookie
就我所知,會話處理程序調用按此順序進行。
open -> read -> write -> close
open函數設置cookie就好了。
function open($save_path,$session_name)
{
require_once('database.php');
require_once('websiteinfo.php');
mysql_connect($sqllocation,$sql_session_user,$sql_session_pass);
@mysql_select_db($sql_default_db);
date_default_timezone_set('America/Los_Angeles');
setcookie("test","test");
return TRUE;
}
read函數可以設置一個cookie直到它返回一個值。
function read($session_id)
{
$time = time();
$query = "SELECT * FROM 'sessions' WHERE 'expires' > '$time'";
$query_result = mysql_query($query);
$data = '';
/* fetch the array and start sifting through it */
while($session_array = mysql_fetch_array($query_result))
{
/* strip the slashes from the session array */
$session_array = $this->strip($session_array);
/* authenticate the user and if so return the session data */
if($this->auth_check($session_array,$session_id))
{
$data = $session_array['data'];
}
}
setcookie("testcookie1","value1",time()+1000,'/');
return $data;
}
寫函數的第一行是設置另一個cookie,它不能因爲頭已經發送。
我相信這是我的問題的答案先生。非常感謝你。 – steve 2010-04-22 23:27:06