간단한 pagelog 코드가 있습니다. 기본적으로 VisitorID 쿠키가 있는지 확인하여 데이터베이스에 쿼리하지 않고 다음 사용 가능한 번호를 얻은 다음 VisitorID 쿠키로 설정하려고합니다. 문제는 실행하려고 할 때 "헤더 정보를 수정할 수 없습니다 - 이미 헤더가 ... bla .. bla .. bla"로 전송되었습니다. PHP에서 내가 설정하고 싶은 것이 무엇인지 모르면 어떻게 쿠키를 설정할 수 있습니까? 당신은 출력 버퍼링을 켤 수 있습니다pre-server side processing을 사용하는 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
그런 경우 일부 파일의 공백 문자가 문제 일 수 있습니다. 후행 공백은이를 수행 할 수 있습니다. –