91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何修復PHP中的“標頭已發送”錯誤

發布時間:2020-07-27 03:36:44 來源:網絡 閱讀:169 作者:前端大大 欄目:開發技術

運行腳本時,出現如下錯誤:

警告:不能更改頭信息-已經( 輸出在/some/file.php:12開始 )在/some/file.php發送上線23頭
錯誤消息中提到的行包含header()和setcookie()調用。

這可能是什么原因? 以及如何解決?

一個簡單的提示:在腳本中,就在第一個<?php標記之前的簡單空格(或不可見的特殊字符)會導致這種情況! 尤其是當您在團隊中工作且有人在使用“弱” IDE或使用奇怪的文本編輯器弄亂了文件時。

我之前曾多次收到此錯誤,并且可以肯定所有PHP程序員至少一次收到過此錯誤。

可能的解決方案1

該錯誤可能是由文件開頭之前或文件結尾之后的空格引起的。這些空格不應在此處。

例)這里應該沒有空白

   echo "your code here";

?>
THERE SHOULD BE NO BLANK SPACES HERE

檢查與導致此錯誤的文件關聯的所有文件。

注意: 有時,像gedit(默認的Linux編輯器)之類的EDITOR(IDE)在保存文件上添加一個空行。 這不應該發生。 如果您使用的是Linux。 您可以使用VI編輯器刪除頁面末尾?>之后的空格/行。

可能的解決方案2:如果不是您這種情況,請使用ob_start輸出緩沖:

<?php
  ob_start();

  // code 

 ob_end_flush();
?> 

這將打開輸出緩沖,并且將在緩沖頁面之后創建標題。

代替下面的行

//header("Location:".ADMIN_URL."/index.php");

echo("<script>location.href = '".ADMIN_URL."/index.php?msg=$msg';</script>");

要么

?><script><?php echo("location.href = '".ADMIN_URL."/index.php?msg=$msg';");?></script><?php

肯定會解決您的問題。 我遇到了同樣的問題,但通過上述方式編寫標題位置解決了。

另一個不好的做法可能會引起此問題,尚未說明。

請參見以下代碼段:

<?php
include('a_important_file.php'); //really really really bad practise
header("Location:A location");
?>

事情還好吧?

如果“ a_important_file.php”是怎么辦:


<?php
//some php code 
//another line of php code
//no line above is generating any output
?>

 ----------This is the end of the an_important_file-------------------

這行不通嗎? 為什么?因為已經生成了新行。

現在,盡管這不是常見的情況,但是如果您使用的是MVC框架,該框架會在將內容移交給控制器之前加載大量文件? 這并非罕見的情況。 為此做好準備。

從PSR-2 2.2開始:

所有PHP文件都必須使用Unix LF (linefeed) line ending 。
所有PHP文件都必須以single blank line結尾。
only php包含only php文件中必須omitted ?>標記
相信我,遵循這些標準可以為您節省很多時間:)

通常,當我們在回顯或打印后發送標題時,會出現此錯誤。 如果在特定頁面上發生此錯誤,請確保在調用start_session()之前該頁面沒有回顯任何內容。

不可預測的錯誤示例:

<?php //a white-space before <?php also send for output and arise error
session_start();
session_regenerate_id();

//your page content
再舉一個例子:

<?php
includes 'functions.php';
?> <!-- This new line will also arise error -->
<?php
session_start();
session_regenerate_id();

//your page content

結論:在調用session_start()或header()函數header()甚至是空格或換行符session_start()之前,請勿輸出任何字符

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永年县| 鹤岗市| 礼泉县| 甘南县| 五河县| 航空| 玛多县| 苍梧县| 江山市| 大厂| 定远县| 信宜市| 沧源| 寻乌县| 雅江县| 新巴尔虎左旗| 大英县| 大埔区| 郧西县| 长泰县| 德保县| 株洲市| 厦门市| 如皋市| 浦东新区| 梨树县| 交口县| 米脂县| 银川市| 托克逊县| 泸州市| 余干县| 道真| 隆安县| 河曲县| 梧州市| 汪清县| 甘谷县| 邵武市| 牟定县| 中西区|