2011-10-22 73 views
0

我已經當用戶成功登錄以下標籤:PHP位置標頭導致錯誤

header('Location: /members'); 

它總是用來工作。然而,現在,當我嘗試加載頁面時,Chrome給了我這個錯誤:

HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfill the request. 

在Firefox上,我只是得到一個空白頁。當我將標題聲明註釋掉時,它可以工作,但沒有重定向(顯然)。

我已經試過它與輸出緩衝打開和關閉,具有相同的效果。有任何想法嗎?

編輯:我有一個PHP頭部語句在代碼的開頭,用戶重定向到成員頁面,如果他們已經登錄。這可能會影響它嗎?我沒有收到任何頭文件已經發送錯誤...

+0

你可以發佈'header'調用的所有代碼嗎? –

+4

啓用error_reporting或查看error.log – mario

+3

提示:始終在'header()'後面使用'exit()',並在頁面頂部寫入'ob_start()' – diEcho

回答

1

只要把error_reporting(E_ALL)和ini_set(「display_errors」,1),你會看到什麼是錯的。

0

安裝HTTP擴展和使用這個來代替:

http_redirect('/members'); 

這應該做的伎倆。如果你沒有安裝。你可以模仿它的功能。這是explained in detail on the manual page,簡而言之步驟:

  • 從相對URI創建一個絕對URI作爲由RFC重定向必須有一個。
  • 檢查報頭是否已經發送,如果是的話不發送報頭,否則做。
  • 顯示帶有重定向鏈接的HTTP響應正文。
  • 退出腳本。

如果你不遵循the specs,你不能指望事情與瀏覽器一起工作。在互聯網上給出的許多例子是而不是給予符合重定向,所以不要被錯誤的例子誤導。

除此之外 - 正如其他人所建議的那樣 - 在您的開發框中打開錯誤報告,以便您瞭解代碼生成的任何通知和警告。處理這些問題也是如此。

+0

事情是,它之前工作正常。我已打開錯誤報告,但我從Chrome中收到錯誤消息,因此實際上看不到該頁面。此外,錯誤日誌中沒有任何內容。 – Lukas