2014-10-02 19 views
2

我已經寫了下面的腳本(剪斷),其中包括WordPress的功能,但它出現在插件的人試圖啓動一個會話時,它已經啓動:如何在我的PHP腳本中隱藏「標題已發送」警告?

<?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

參見[如何修復已發送頭錯誤](https://開頭計算器。 com/questions/8028957/how-to-fix-headers-already-sent-error-in-php) - woocommerce-ac.php插件顯然是調用'session_start()',但是你在此之前已經有一些輸出(甚至是空白或領先的換行符) – 2014-10-02 01:19:55

+1

爲什麼不刪除有問題的代碼? – 2014-10-02 01:20:45

+0

爲什麼不刪除有問題的代碼?因爲這是一個付費插件,我不想搞亂。 – Lock 2014-10-02 01:25:18

回答

1

有三個選項我在這裏看到:

  1. 修復有問題的代碼。正如你所提到的,這可能不是最佳的第三方代碼。

  2. 要求退款,並用寫得很好的東西替換此插件;特別是符合公認編碼標準的東西,如PSR-2或梨。

  3. 找到包含有問題的文件的位置(或調用違規函數並將它們包裝在調用中以更改錯誤報告級別(代碼如下))。缺點是您的會話將無法工作,已經由插件發送,這可以防止會話cookie被設置,使得由PHP會話未確認的瀏覽器

    $previousErrorLevel = error_reporting(); 
    error_reporting(\E_ERROR); 
    //offending code inclusion or call here 
    error_reporting($previousErrorLevel); 
    
相關問題