2009-10-23 80 views
2

我有一個提交簡歷的PHP頁面。一旦點擊提交他們的信息全部職位,以mail.php後重定向?

一旦郵件被髮送我想用戶返回不同的頁面的網站(其中就業機會所在)

是上在mail.php完成其業務後,我可以使用任何類型的命令重定向到不同的頁面?

感謝

回答

1

在相關說明中,有關PHP header命令的一個重要內容,您必須確保在運行該頁面的頁面上顯示任何內容之前運行此命令,否則它將無法工作。

例如,這是不行的:

<html> 
<head> 
</head> 
<body> 
    Hello world 
</body> 
<?php header("Location: mypage.php"); ?> 
</html> 

,但是這將工作:

<?php header("Location: mypage.php"); ?> 
<html> 
<head> 
</head> 
<body> 
    Hello world 
</body> 
</html> 

基本上,頭命令將只工作,如果它是在PHP腳本中使用之前的任何靜態內容或甚至HTML標籤都吐出腳本。

+0

而且,如果您不想在重定向後顯示html或執行代碼,請務必添加exit();或者死();在頁面的其餘部分之前。 – JAL 2009-10-24 03:53:05

8

這是PHP的標準重定向:

<?php 
header('HTTP/1.1 301 Moved Permanently'); 
header('Location: http://www.example.com'); 
exit; 
?> 

然而,在你的情況下,301重定向線可能是沒有必要的。需要注意的是,exit是必要的,否則PHP腳本的其餘部分將被執行,您可能不需要(例如,如果出現錯誤,您可能想顯示某些內容)。

而且,必須在向瀏覽器發送任何輸出(包括空行)之前調用header函數。如果您無法避免一些空白行,請在腳本的開始處輸入ob_start();

+1

取決於具體情況,對於狀態代碼應該是「302 See Other」或「200 OK」。 301狀態意味着被訪問的頁面現在處於新的位置,事實並非如此。有關使用正確的狀態代碼的更多信息,請參閱參考資料:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html – 2009-10-23 16:39:28

+0

在這種情況下,它應該實際上是303,因爲數據已發佈。 header(「Location:http://www.example.com」,true,303); – JAL 2009-10-24 03:51:57

2

使用header()功能:

header('Location: http://example.com/new_loc/'); 

header('Location: /new_loc/'); // if it's within the same domain. 
2

在mail.php結束只需要添加

header("Location: anotherpage.php"); 

請記住,你可以在頭之前不輸出任何東西()要求重定向正常工作。