2011-06-03 133 views
2

使用php腳本允許用戶將他們的電子郵件添加到郵件列表中。當它成功將電子郵件寫入.txt文檔時,它會在白頁上顯示成功消息。我希望它重定向到我設計的網頁看起來像網站的其餘部分。我已經在其他地方看過我需要使用頭函數,但由於我的代碼的前面部分包含輸出,所以我不知道該把它放在哪裏。表單成功後的php重定向

我認爲這是相關代碼:

// Write to file if email doesn't already exist 
    if ($emailexists != "yes") { 

     // Write to the list and give success message 
     fwrite($fh, "$_POST[email]\n"); 
     $msg = "Your e-mail address $EmailFix was successfully added to the list!"; 
    } 

    // Close the list 
    fclose($fh); 
} 

那麼這個:

// Show success message if there was one and end script, and no errors were encountered 
} elseif (isset($msg)) { 
echo "<b>" . $msg . "</b>\n"; 
echo "</body>\n"; 
echo "</html>\n"; 
exit; 
} 

回答

2

嘗試使用

header("Location: http://..."); 

header("Location: filename.php"); 

確保在調用標題功能之前沒有HTML輸出!

+0

如果您對輸出緩衝沒有把握,您也可以使用Javascript或Meta重定向。 – 2011-06-03 20:26:44

+1

應該加入exit();之後也是如此。 – 2011-06-03 20:58:59

+0

這是一個比JavaScript重定向等更好的選擇。 – horatio 2011-06-03 21:12:56

1

您是否希望此消息仍然顯示,然後將其重定向到其他位置?或者你想一起放棄這條信息,並將它們引導到一個不同的頁面,並有類似的信息?

您可以顯示頁面是,和包括另一回聲觸發重定向:如果您以前的代碼包含的代碼比你可以使用JavaScript重定向

echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"2;URL=/someotherpage.php\">"; 
+0

感謝您的回覆。我不希望用戶看到該消息,只是將其重定向到具有類似消息的頁面...... – user783154 2011-06-03 23:39:07

0

window.location = "YOUR_URL_HERE"; 

你應該向用戶說明他/她將被重定向的用戶。

+0

關於用戶通知的約定。在定時器上設置重定向 - 三到七秒通常是理想的,並且防止用戶迷失方向。 – damianb 2011-06-03 21:05:00