2014-07-23 39 views
-3

注意:PHP相對較新,請原諒我在解釋我的代碼時出現的任何錯誤。成功插入查詢後PHP頭()不重定向

我具有由爲registration.php處理並完成所有的錯誤檢查,查看是否用戶已經等

註冊在成功註冊的註冊表單:我顯示此消息。

if ($query_new_user_insert) { 
$this->messages[] = "Your account has been created successfully. You can now log in."; 
} 

現在我想重定向回登錄頁,而不是用:

if ($query_new_user_insert) { 
header("Location: http://localhost:8888/login/index.php"); 
} 

有什麼問題我目前的進程?

UPDATE

Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/login/views/header.php:63) in /Applications/MAMP/htdocs/login/classes/Registration.php on line 109

謝謝。

+2

究竟發生了什麼?你有錯誤嗎?另外,在重定向之後放置'exit;'。 –

+0

沒有任何事情發生,代碼通過並將用戶插入到數據庫中,但保留在註冊頁面中。 – AntonB

+0

請確保錯誤報告處於活動狀態和/或您正在查找錯誤。 – deceze

回答

1

header()命令只有在沒有任何打印輸出的情況下才起作用。

http://php.net/manual/en/function.header.php

記住header()函數是 發送的任何實際輸出之前,必須被調用,或者通過正常的HTML標記,空行在文件中,或從PHP

在在header.php的其他行已經打印了一些輸出。您必須在該行之前放置您的header()命令,或者確保第63行在代碼稍後的某個點顯示其內容。

+0

header.php是我的views/header.php,我用來在我的所有頁面上顯示

。所以這是干擾的PHP? – AntonB

+0

它已經開始發送數據。在包含header.php文件後,您將無法再使用header()。你應該確保你的header()重定向在包含header.php之前開始 – JochenJung

+0

你需要檢查輸出文件中的某處,是的。從頂部開始,一路順風。 –