无法修改标题信息setcookie

时间:2016-03-06 06:32:40

标签: php

我最近从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');

2 个答案:

答案 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。

另请参阅:Warning about `$HTTP_RAW_POST_DATA` being deprecated

答案 1 :(得分:0)

警告很清楚。

  

警告:无法修改标头信息 - 已发送的标头   (index.php:1)在第2927行的core.php中

来自http://php.net/setcookie

  

setcookie()定义了一个与其余部分一起发送的cookie   HTTP标头。与其他标头一样,Cookie必须先发送   脚本输出(这是协议限制)。这个   要求您在输出之前调用此函数,   包括和标签以及任何空格。

在出现HTML之前移动该setcookie语句: