我有一個簡單的pagelog代碼。基本上,它會檢查是否有VisitorID cookie,如果沒有,它會查詢我的數據庫,獲取下一個可用的數字,然後我想將其設置爲VisitorID cookie。 問題是當我嘗試運行它時,我得到了「無法修改標題信息 - 標題已被... bla .. bla .. bla」發送。 在PHP中,如果我不知道我想將其設置爲什麼,我該如何設置cookie?PHP的setcookie()與前置服務器端處理?
這裏是我的代碼,我包括在頁面上任何事情之前被寫入到瀏覽器:
<?php
$Browser = $_SERVER["HTTP_USER_AGENT"];
$TheTable = "PageVisits";
if (strripos($Browser,"mozilla") < 0||
strripos($Browser,"search") > 0 ||
strripos($Browser,"bot") > 0 ||
strripos($Browser,"scoutjet") > 0 ||
strripos($Browser,"ask jeeves/teoma") > 0 ||
strripos($Browser,"slurp") > 0)
{
$TheTable = "BotVisits";
}
$IPAddress = $_SERVER["REMOTE_ADDR"];
$AcceptedTypes = $_SERVER["HTTP_ACCEPT"];
$Referer = $_SERVER["HTTP_REFERER"];
$VisitorID = $_COOKIE["VisitorID"];
//Get VisitorID
if (strlen($VisitorID) == 0)
{
$SqlStr = "SELECT IF(IsNull(MAX(VisitorID)), 1, MAX(VisitorID) + 1) AS NewVistorID " .
"FROM " . $TheTable . " ";
$con = mysql_connect("DBServer","DBUserName","DBPassword");
mysql_select_db("ratpackc_ratpack", $con);
$result = mysql_query($SqlStr);
$VisitorID = mysql_result($result, 0);
mysql_close($con);
}
//Update page log
$SqlStr = "INSERT INTO " . $TheTable . " " .
"(VisitorID, IPAddress, ThePage, Referer, Browser, AcceptedTypes) " .
"VALUES (" . $VisitorID . ",'" . $IPAddress . "','" . $ThisPage . "','" . $Referer . "','" . $Browser . "','" . $AcceptedTypes . "')" ;
$con = mysql_connect("DBServer","DBUserName","DBPassword");
mysql_select_db("ratpackc_ratpack", $con);
mysql_query($SqlStr);
mysql_close($con);
$CookieExpire = time()+31536000;
setcookie("VisitorID", $VisitorID, $CookieExpire); .
?>
我試過了,仍然得到相同的錯誤。 – Soren
如果是這種情況,某些文件中的空白字符可能會成爲問題。尾隨空白也可以。 –