1

我有 2 两个 php 页面。一个是主要页面,包含第二个页面,我想向其中添加过期标头,但出现以下错误

    Warning: Cannot modify header information -
 headers already sent by (output started at.. 

在第一个

ob_start('ob_gzhandler', 6);

/// lots of html here

include("pageTwo.php");

/// lots of html here

ob_end_flush();

在第二页

ob_start();
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 3600));

/// lots of html here

ob_end_flush();
4

3 回答 3

1

不要使用模式并在应用压缩之前6尝试裸露。

<?php
ob_start();

// include ...

ob_end_flush();
?>
于 2012-05-16T04:37:57.003 回答
0

您需要在您的 php 页面生成任何输出之前发送标头。

这将不起作用

<?php 
     print 'test';
     header( 'Expires: .... ' );
?>

这将起作用:

<?php
     header( 'Expires: .... ' );
     print 'test';
?>

所以基本上你需要改变哪个页面发送标题。

于 2012-05-16T04:36:14.067 回答
0

您不能在标题之前放置任何回显字符串的内容,因为标题应该首先出现,而不是作为常规文本。您可以添加常规元标记。并通过 php 示例设置过期时间

  <meta http-equiv="expires" content="<?php echo date(whatever type); ?>" />
于 2012-05-16T04:41:08.823 回答