PHP: 无法设置 cookie
PHP: cannot set a cookie
我想设置一个 cookie,但它不起作用。我是 PHP 的新手,但我在互联网上搜索了如何设置 cookie,但它不起作用。
<div id="content">
<?php
if(isset($_GET['search-item']) && !isset($_COOKIE["searchRequest"])) {
setcookie("searchRequest", $_GET['search-item']);
include 'search_engine.php';
}
else {
$page = $_COOKIE['page'];
if(isset($page)){
require_once $page;
}
else {
require_once 'startpage.php';
}
}
?>
</div>
我真的不知道我做错了什么:(谁能帮我解释一下为什么这行不通。其他一切都完美无缺
首先启用错误报告:
error_reporting(E_ALL);
ini_set('display_errors', 1);
然后您应该看到以下内容:
PHP Warning: Cannot modify header information - headers already sent
因为在setcookie之前不能输出任何东西,而你在这里做:
<div id="content">
手册说:
Like other headers, cookies must be sent before any output from your
script (this is a protocol restriction). This requires that you place
calls to this function prior to any output, including and
tags as well as any whitespace.
设置cookie后移动即可:
<?php
if(isset($_GET['search-item']) && !isset($_COOKIE["searchRequest"])) {
setcookie("searchRequest", $_GET['search-item']);
echo '<div id="content">';
include 'search_engine.php';
}else{
echo '<div id="content">';
if(isset($_COOKIE['page'])){
$page = $_COOKIE['page'];
require_once $page;
}else{
require_once 'startpage.php';
}
}
echo '</div>';
?>
注意:包含来自 cookie 的文件是不安全的,我希望你只是试验一下,它不是正式代码的一部分。
我想设置一个 cookie,但它不起作用。我是 PHP 的新手,但我在互联网上搜索了如何设置 cookie,但它不起作用。
<div id="content">
<?php
if(isset($_GET['search-item']) && !isset($_COOKIE["searchRequest"])) {
setcookie("searchRequest", $_GET['search-item']);
include 'search_engine.php';
}
else {
$page = $_COOKIE['page'];
if(isset($page)){
require_once $page;
}
else {
require_once 'startpage.php';
}
}
?>
</div>
我真的不知道我做错了什么:(谁能帮我解释一下为什么这行不通。其他一切都完美无缺
首先启用错误报告:
error_reporting(E_ALL);
ini_set('display_errors', 1);
然后您应该看到以下内容:
PHP Warning: Cannot modify header information - headers already sent
因为在setcookie之前不能输出任何东西,而你在这里做:
<div id="content">
手册说:
Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including and tags as well as any whitespace.
设置cookie后移动即可:
<?php
if(isset($_GET['search-item']) && !isset($_COOKIE["searchRequest"])) {
setcookie("searchRequest", $_GET['search-item']);
echo '<div id="content">';
include 'search_engine.php';
}else{
echo '<div id="content">';
if(isset($_COOKIE['page'])){
$page = $_COOKIE['page'];
require_once $page;
}else{
require_once 'startpage.php';
}
}
echo '</div>';
?>
注意:包含来自 cookie 的文件是不安全的,我希望你只是试验一下,它不是正式代码的一部分。