我有一個定界符形式(如下所示)的干擾。當用戶單擊表單上的提交按鈕(下面的表單中的「添加記錄」按鈕)時,表單會發回addToDb.php。定界符與內部addToDb.php在郵政/重定向/報頭()獲取場景
驗證我的表格上還行數據後,我將數據添加到我的數據庫,並使用標頭(),以303重定向(這是我第一次嘗試過使用後/重定向/獲取)。
我得到一個錯誤:
「警告:不能更改頭信息 - 頭已經發出(輸出開始在C:\ XAMPP \ htdocs中\富\ addToDb.php:165)在C:\ XAMPP \ htdocs中\ FOO \ addToDb.php上管線129和在C:\ XAMPP \ htdocs中\ FOO \ addToDb.php在線路130" 上
echo <<<_END
<h1>Please add a new student....</h1>
<p>Fields with an asterisk (*) are required fields.</p>
<form action="addToDb.php" method="post">
<b><i>First name *</b></i> : <input type="text" name=$firstNameLabel /><br />
Middle initial : <input type="text" name=$middleInitialLabel /><br />
<b><i>Last name *</b></i> : <input type="text" name=$lastNameLabel /><br />
<b><i>School*</i></b> : <input type="text" name=$schoolLabel size=40/><br />
Grade: <input type="text" name=$gradeLabel /><br />
<b><i>Email *</b></i> : <input type="text" name=$emailLabel size=40 /><br />
<input type="submit" name="addrecord" value="ADD RECORD" /><br />
</form>
_END;
*(注意:上面的_END,封閉所述定界符,上線165出現在addToDb.php - 該行165錯誤消息我得到的是提及)*
因此,當按下「添加記錄」提交按鈕時,將重新輸入相同的addToDb.php文件,並再次顯示與上面相同的表單。
當addToDb.php由於重新進入到提交,我檢查由用戶提供有效的表單數據保存到數據庫中,如果是有效的數據,並調用header()函數如下:
// check for valid form data and add to the database, then redirect now.........
header("HTTP/1.1 303 See Other");
header("Location: http://localhost/foo/index.php");
exit();
(注:兩次調用頭球攻門高出出現在線路129和130 addToDb.php)
所以這裏發生了什麼:
- 我填寫表格與有效數據
- 推「添加記錄」
- 然後形式重新顯示爲我重新輸入addToDb.php
- 我的成功記錄被添加到數據庫中,但是。 .....
- 我沒有看到的index.php在瀏覽器中,我仍然看到addToDb.php
- ,我得到如上所述和下面重複錯誤消息:
「警告:無法修改標題信息 - 標題已經通過發送(輸出開始C:\ XAMPP \ htdocs中\ FOO \ addToDb.php:165)在C:\ XAMPP \ htdocs中\ FOO \ addToDb.php上管線129和在C:\ XAMPP \ htdocs中\ FOO \ addToDb。在線130上的PHP「
我在過去沒有任何問題使用過heredoc方法。
但是,這是我生命中的第一次,我想實現郵政/重定向/獲取。
所以 - 是定界符某種程度上與我的PRG干擾?
那樣做了。謝謝。只要我刪除所有的調試回聲和所有其他輸出,重定向工作到index.php罰款。我甚至不得不刪除一個var_dump()調用。 – wantTheBest 2012-01-16 22:28:12
很高興幫助。 :) – vdbuilder 2012-01-16 22:39:47