亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何修復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

西充县| 泗水县| 长丰县| 资中县| 揭西县| 淮南市| 朝阳区| 崇信县| 安福县| 辛集市| 长沙市| 专栏| 荆门市| 沧源| 肥西县| 申扎县| 寻甸| 长治市| 南通市| 富宁县| 板桥市| 卢龙县| 彭水| 宝坻区| 昌平区| 大港区| 桐梓县| 巴东县| 凤城市| 延庆县| 石门县| 集安市| 陆良县| 温州市| 女性| 安远县| 华池县| 莆田市| 射洪县| 湖口县| 营山县|