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