我最近从php 5.3升级到php 5.6
但我的代码收到错误:
Warning: Cannot modify header information - headers already sent by (index.php:1) in core.php on line 2927
LINE 2927
setcookie(COOKIE_TOKEN, NULL, -1);
COOKIE_TOKEN是:
define('COOKIE_TOKEN', 'name');
答案 0 :(得分:1)
警告:无法修改标头信息 - 已发送的标头
问题是由$HTTP_RAW_POST_DATA
引起的:
http://php.net/manual/en/migration56.deprecated.php
底部有一个例子可以帮助确认它:
<?php
ini_set('always_populate_raw_post_data',-1);
$HTTP_RAW_POST_DATA = file_get_contents('php://input');
echo $HTTP_RAW_POST_DATA;
?>
http://php.net/manual/en/reserved.variables.httprawpostdata.php
PHP 5.6已弃用,自动填充HTTP_RAW_POST_DATA 变量并引入了弃用通知。如果保留设置 在核心的默认值为0的请求可以触发此通知 虽然没有使用或访问HTTP_RAW_POST_DATA。
答案 1 :(得分:0)
警告很清楚。
警告:无法修改标头信息 - 已发送的标头 (index.php:1)在第2927行的core.php中
setcookie()定义了一个与其余部分一起发送的cookie HTTP标头。与其他标头一样,Cookie必须先发送 脚本输出(这是协议限制)。这个 要求您在输出之前调用此函数, 包括和标签以及任何空格。
在出现HTML
之前移动该setcookie语句: