2012-04-11 80 views
4

我使用這個代碼後...PHP重定向張貼到數據庫

<?php 
if (isset($_POST['submitButton'])) { 
mysql_query("UPDATE notes SET Note=('$_POST[note]') 
WHERE UserID='19'"); 

mysql_close($con); 
header('Location: editrem3.htm'); //clears POST 
} 
?> 

如何重定向頁面用戶點擊後提交和數據已經公佈?

+5

它不是按照你現在這樣做的方式工作嗎? – 2012-04-11 17:08:37

+0

uhhhhhhm不是那是幹什麼? – Rooster 2012-04-11 17:08:41

+0

不,它不重定向 – user990175 2012-04-11 17:09:35

回答

2

首先,請確保您在if()區塊內輸入if()條件echo

如果它工作正常,那麼請確保在執行header()之前,您沒有發送任何東西。因爲當你在一個PHP文件中使用header()時,在這之前不能有任何其他輸出語句。因此,請檢查任何HTML代碼或echo

然後如果您確定header()正在執行中,但仍未重定向,請確保目標文件存在。

額外:總是在header()之後立即添加exit()重定向。否則代碼將繼續執行,並可以顯示您的敏感數據。

+0

我現在已經開始工作了。我沒有在頁面頂部的PHP代碼,我在它前面有標籤。所以現在好,謝謝。 – user990175 2012-04-11 18:44:11

+0

你是對的,如果你打電話給標題,你不能因爲我們已經發送的標題,我想你應該在屏幕上有一些錯誤(因爲他們沒有被壓制或者什麼)。 – 2012-04-11 18:52:44

1

使用文件的相對路徑可能會導致問題。嘗試使用完整路徑(也可能在if {}之外會更有意義)。

PHP可能能夠解析相對路徑,但the w3 spec explicitly states to use absolute URIs

編輯:爲了詳細說明,遞過一個相對路徑開了一個瀏覽器重定向玩火。瀏覽器可能會認爲它知道它在您網站的層次結構中的位置,但實際上它可能位於不同的位置。

另外,如果你沒有得到一個404頁面或類似的東西的時候,那麼相對路徑可能不是你的問題,但它可能會幫助你以後的道路

+0

實際上相對路徑與PHP無關,它是客戶端處理重定向的責任 – galymzhan 2012-04-11 18:01:24

+0

@galyymzhan - 各種瀏覽器對相對路徑的解釋可能不同,使得開發人員有責任儘可能地控制路徑。如果你指的是我談論PHP'解析路徑',那麼也許我對'解析'的使用是錯誤的 - 我的意思並不是這個意思。 – orourkek 2012-04-11 18:04:21

0

使用元重定向,東西像

<meta http-equiv="refresh" content="0; url=http://example.com/"> 

,但你可以做這樣的事情

<meta http-equiv="refresh" content="0; url=index.php"> 

正常工作與我