2010-03-01 64 views
0

我無法弄清楚可能會導致此錯誤的原因。我的Apache日誌沒有記錄關於該頁面的訪問日誌或錯誤日誌中的任何錯誤,但不管怎樣,當我取消註釋header()行時,我得到一個500內部服務器錯誤。在調用header()之前輸出內容時,它不會來自PHP的致命錯誤,那不會導致500會不會呢?爲什麼header()導致內部服務器錯誤?

header("Location: /offices/page-".ceil($cache->size()/15)); 

我測試$cache->size()和它的返回22,所以它應該在2追加到字符串的結尾和重定向。我確實有ob_start()header()之前打電話但是我打過電話前右它ob_end_clean(),它仍然什麼也沒做......

我甚至試圖把header("Location: /offices");在文件的最開始,它仍然給了我一個500

回答

2

該腳本將繼續你的頭()調用後執行。你需要在它之後立即放置exit;。但這不應該導致500錯誤。

編輯:顯然這個工作 - 意味着你的問題可能是在頁面後面的一些相關的代碼?

+1

添加'exit'解決了問題... – animuson 2010-03-01 05:33:37

+1

如果取消註釋header()是唯一的其他更改,並且這固定它然後*怪異*。 – jasonbar 2010-03-01 05:35:31

2

嘗試使用完全形成的網址:

header("Location: http://{$_SERVER['HTTP_HOST']}/offices/page-".ceil($cache->size()/15)); 
+1

我試着把'header(「Location:http://www.example.com」);'仍然是500錯誤。 – animuson 2010-03-01 05:28:43

+0

@animuson好吧,那很奇怪。 :) – deceze 2010-03-01 05:31:23

+0

無論是那個說出口後立即出口,似乎已經奏效。我把'exit'放在'header'後面,它現在重定向就好了... – animuson 2010-03-01 05:32:34

0

我有同樣的事情發生。在監視器上反覆敲打我的頭後,它不是標題(「Location:myPage.php」);這是破碎的行 - 這是myPage.php破碎了!嘗試重定向到另一個頁面。我希望我省去別人的時間

相關問題