试图找出为什么我没有获得此脚本的任何输出。我收到这个错误:
警告:无法修改标题信息 - 已在/Library/WebServer/Documents/WEBB_SERVER/4.2x/index中发送的标题(输出从/Library/WebServer/Documents/WEBB_SERVER/4.2x/index.php:38开始)第23行的.php
警告:无法修改标题信息 - 已在/Library/WebServer/Documents/WEBB_SERVER/4.2x/index中发送的标题(输出从/Library/WebServer/Documents/WEBB_SERVER/4.2x/index.php:38开始)第25行的.php
我打算打印cookie的名称和保存时间。我知道错误警告我在PHP标记之前/之后某处可能有空格,但无法找到问题。
为什么我的输出没有显示?名称(“Cookie怪物”)和时间。我认为这与警告有关。
任何建议表示赞赏!
<?php
class cookie {
/* Konstruktor som skriver ut information om kakor - finns det inga så skapas dem */
public function __construct() {
if (isset($_COOKIE['time']) && isset($_COOKIE['name'])) {
echo "Name of cookie: " . $_COOKIE['name'];
echo "</br>";
echo "Time of creeation: " . $_COOKIE['time'];
} else {
$this -> SetCookie();
}
}
/* Funktion för att skapa cookies */
public function SetCookie() {
$expire = time() + 60 * 60 * 3;
$now = @date("Y-m-d H:i:s");
setcookie('time', $now, $expire);
$_COOKIE['time'] = $now;
setcookie('name', "Cookie monster", $expire);
$_COOKIE['name'] = "Cookie monster";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<?php
$t = new cookie();
?>
</body>
</html>
答案 0 :(得分:1)
您在打印任何内容后都无法设置任何Cookie,因为setcookie参数正在请求标头中发回,因此如果您打印的内容比您不能设置任何Cookie。试试这个:
<?php
class cookie {
/* Konstruktor som skriver ut information om kakor - finns det inga så skapas dem */
public function __construct() {
if (isset($_COOKIE['time']) && isset($_COOKIE['name'])) {
echo "Name of cookie: " . $_COOKIE['name'];
echo "</br>";
echo "Time of creeation: " . $_COOKIE['time'];
} else {
$this -> SetCookie();
}
}
/* Funktion för att skapa cookies */
public function SetCookie() {
$expire = time() + 60 * 60 * 3;
$now = @date("Y-m-d H:i:s");
setcookie('time', $now, $expire);
$_COOKIE['time'] = $now;
setcookie('name', "Cookie monster", $expire);
$_COOKIE['name'] = "Cookie monster";
}
}
$t = new cookie();
?>
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<? echo $t; ?>
</body>
</html>