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

溫馨提示×

溫馨提示×

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

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

PHP中出現“標頭已發送”錯誤的原因和解決方法

發布時間:2020-06-10 12:04:04 來源:億速云 閱讀:351 作者:元一 欄目:開發技術

PHP

PHP即“超文本預處理器”,是一種通用開源腳本語言。PHP是在服務器端執行的腳本語言,與C語言類似,是常用的網站編程語言。根據動態網站要求,PHP語言作為一種語言程序,其專用性逐漸在應用過程中顯現,其技術水平的優劣與否將直接影響網站的運行效率。其特點是具有公開的源代碼, 在程序設計上與通用型語言,如C語言相似性較高,因此在操作過程中簡單易懂,可操作性強。

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

警告:不能更改頭信息-已經( 輸出在/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

晋江市| 遂川县| 山东省| 紫金县| 城口县| 婺源县| 嘉定区| 通海县| 家居| 长沙县| 油尖旺区| 神农架林区| 册亨县| 高平市| 同江市| 四川省| 青神县| 洪湖市| 团风县| 衡阳市| 寻乌县| 巴林右旗| 颍上县| 安义县| 饶平县| 永嘉县| 卓资县| 云林县| 驻马店市| 徐汇区| 亚东县| 平原县| 蒲城县| 宾阳县| 台中市| 濮阳县| 甘洛县| 麟游县| 阳泉市| 霍山县| 海阳市|