我在php中有一些簡單的電子郵件代碼,當用戶按下表單上的提交按鈕時,它會觸發php文件運行。嘗試重定向PHP時出錯
但是,我有一個聲明來檢查它是否是一個正確的電子郵件;如果不重定向他們。 位是想出這個錯誤:
不能更改頭信息 - 頭已經發出(輸出開始......)
這裏是PHP代碼:
任何建議將是有益的!
感謝
我在php中有一些簡單的電子郵件代碼,當用戶按下表單上的提交按鈕時,它會觸發php文件運行。嘗試重定向PHP時出錯
但是,我有一個聲明來檢查它是否是一個正確的電子郵件;如果不重定向他們。 位是想出這個錯誤:
不能更改頭信息 - 頭已經發出(輸出開始......)
這裏是PHP代碼:
任何建議將是有益的!
感謝
警告:不能更改頭信息 - 頭已經發出(輸出開始/噸。 php:6)on line 22
這是我在過去幾天內回答最多的問題。
所以我會複製我最後的答案。
在發送標題前不應該有輸出。
<?php
echo "blabla";
header ('Location: page.php');
?>
或
<strong>Output</strong>
<?php
header ('Location: page.php');
?>
將拋出一個錯誤。
不過話說:當你從PHP腳本重定向
<?php header ('Location: page.php'); ?>
<strong>Output</strong>
不會引發錯誤
由於HTTP響應是純文本,標題應該是第一件事擔任[高清通過。您不需要用HTML標籤包裝它們,只需在撥打任何header()
電話之前擺脫它們。
所以你的意思是,刪除它之前的所有html標籤,所以
刪除所有HTML。你只是重定向,你不想顯示任何東西。 – moonwave99 2013-03-23 11:37:27
使用下面的代碼寫的,而不是調用header()函數,使自己的函數給出如下─
<?php
function Redirect($Str_Location)
{
if(!headers_sent())
{
header('location: ' . urldecode($Str_Location));
exit;
}
exit('<meta http-equiv="refresh" content="0; url=' . urldecode($Str_Location) . '"/>'); # | exit('<script>document.location.href=' . urldecode($Str_Location) . ';</script>');
return;
}?>
根本沒有意義。 – moonwave99 2013-03-23 11:36:24
這是什麼意思? – 2013-03-23 11:50:52
我在php5.3中使用這個代碼來解決同樣的錯誤。 – 2013-03-23 11:53:07
確保你不應該重定向腳本之前回聲或HTML語句。
<?php
//You should not have any echo or html statement before this redirect script
header("location:url");
?>
經典新手的錯誤:) - [在這裏閱讀第一段(http://php.net/manual/en/function.header.php) – Emissary 2013-03-23 11:34:53
這段代碼只重定向到最後重定向位置.. ? – 2013-03-23 11:40:01
所以我在這裏做錯了什麼,我已經刪除了html標籤http://codepad.org/OyfIyfDo – CallumHolden 2013-03-23 11:44:19