已经在cron作业解决方案中发送的标头无法正常工作

时间:2014-10-23 23:45:26

标签: php cron

我知道这里已经有很多次问过互联网,但我找到的解决方案都没有用,这让我疯了好几个月了。

我有一个非常简单的PHP页面:

<?php session_start(); ?>

我在error_log中遇到了噩梦错误headers already sentcache limiter。虽然它不会影响任何脚本的功能,但它填充了error_log这么多。从浏览器运行时没有错误。

我尝试过Mac的TextWrangler编辑器,并在保存时选择Unicode UTF-16 with no BOM选项。但是,在使用Textwrangler创建文件后,确保扩展名为PHP,并将文件上载到服务器。我尝试直接运行该文件,并在浏览器中获得以下内容:

<�?php session_start(); ?>

因此文件编码不正确。我不知道为什么。使用TextEdit或TextWrangler对UTF-8进行常规编码时,标题错误将出现在cron作业中,如前所述。

我自己编写所有文本而不复制,因此文件中没有BOM字符。这个错误有没有真正的解决方案?我应该使用ANSI编辑器吗?是不是将保存为utf-16而没有使用bom选项来避免这种错误?或者如果在cron中有会话,则必须出现此错误?

最后,我在cpanel中使用以下cron作业:php -q /path/to/file.php

1 个答案:

答案 0 :(得分:0)

从cron调用php脚本将调用PHP-CLI环境,这与从浏览器调用相同脚本不同。
例如,没有cookie,显然默认情况下没有会话。

然而,如果你仍然想要享受会议,有一种方法。你可以试试这个:

<?php
session_id ("temp");
session_start();
print_r ($_SESSION);
?> 

如果您向我们提供有关此脚本背后的最终目标或用例的信息,我们可以为您提供更多帮助!