我编写了包含WordPress功能的下面脚本(剪辑),但是当其中一个插件尝试启动会话时,它似乎已经启动了:
<?php
define('WP_USE_THEMES', false);
require('../../../wp-blog-header.php');
...
?>
我在php错误日志中得到以下内容:
<b>Warning</b>: session_start(): Cannot send session cookie - headers already sent in <b>/home/sp32/public_html/wp-content/plugins/woocommerce-abandon-cart-pro/woocommerce-ac.php</b> on line <b>44</b><br />
<br />
<b>Warning</b>: session_start(): Cannot send session cache limiter - headers already sent in <b>/home/sp32/public_html/wp-content/plugins/woocommerce-abandon-cart-pro/woocommerce-ac.php</b> on line <b>44</b><br />
我假设这是插件本身的错误,但是我想阻止这些警告在我的日志文件中显示我的特定脚本。我该怎么办呢?理想情况下,我不想隐藏所有警告,仅此一项。
请注意,这不是重复 - 我不是在问如何解决问题(因为问题在于第三方插件),我问如何抑制警告消息。
答案 0 :(得分:2)
我在这里看到三个选项:
修复有问题的代码。如您所述,使用第三方代码可能不是最佳选择。
要求退款,并用写好的内容替换此插件;特别是,遵守公认的编码标准,如PSR-2或梨。
查找包含违规文件的位置(或调用违规函数并将其包装在调用中以更改错误报告级别(下面的代码)。这样做的缺点是您的会话将无法工作,因为标题已经被插件发送;这可以防止设置会话cookie,使得php会话无法识别浏览器。
$previousErrorLevel = error_reporting();
error_reporting(\E_ERROR);
//offending code inclusion or call here
error_reporting($previousErrorLevel);