2014-02-12 109 views
1

我有一個表單,表單提交後將用戶重定向到「page1.php」。我想要做的是在提交表單後將用戶重定向到「page2.php」,但我需要確保POST請求已發送。例如:PHP提交表單後重定向到新頁面

<form action="page1.php" method="POST"> 
<input type="text" name="username" /> 
<input type="text" name="age" /> 
<input type="submit" value="" /> 
</form> 

當用戶點擊提交時,它將他重定向到page1.php。我想將他重定向到page2.php,但我需要確保將數據發送到服務器。我無法使用AJAX。有沒有辦法用cURL或類似的東西來做到這一點?任何例子?

謝謝!

+0

使用條件語句。 –

+0

使用標題()重定向 –

+0

可能的重複[使用javascript提交表單後更改頁面](http://stackoverflow.com/questions/21703542/change-page-after-submitting-the-form-using-javascript ) – czachor

回答

0

在您的'page1.php'處理器中,將'header'重定向添加到'page2.php'。

header("Location: page2.php"); 
exit; 
+0

這將導致雙重定向。提交頁面 - > Page1 - > Page2。它必須用1個重定向來完成。 –

+0

不確定我是否理解,但是如果您只能有一個重定向,那麼將表單發佈到'form2.php',然後在'form2.php'中,您可以通過cURL將表單信息發送到'form1.php'並且然後等待響應返回,然後再繼續處理'form2.php'上的代碼。 – Quixrick

1

您可以檢查POST請求的東西,如發送:

if($_SERVER['REQUEST_METHOD'] == 'POST') { 
    // do something... 
} 

您可以在表單中創建一個隱藏的輸入和發送有關提交表單,例如額外的信息行動。

裏面你會做你的魔術和重定向用戶提供:

header('Location: page2.php'); 
exit(); 
0

你可以做一個檢查,如果查詢完成

例如

<?php 
$query=mysqli_query(".......your query statement")or trigger_error(mysqli_error()); 
if($query){ 
      header("Location:page2.php"); 
      } 
else{ 
    die('error'); 
    } 
?> 
2

我想這個作品! 在page1.php中

<?php 
//do establish session 
//and check for the input fields obtained via $_POST 
if(isset($_POST['name_of_your_field']) && !empty($_POST['name_of_your_field'])){ 
    if(!mail($to,$subject,$message)){ 
     header('location:form.php?msg=error'); 
    }else{ 
     header('location:page2.php?msg=succes'); 
     } 
} 
?> 
0

在你的情況,你可以只是簡單的檢查,對發佈的數據。像

$username = $_POST['username']; 
$age = $_POST['age']; 
if($username&&$age){ /* This is to check if the variables are not empty */ 
// redirect to page2 
} 

這是合乎邏輯的,如果這些不是空的,這意味着它們被張貼。即使他們是空的,只要你到達那裏,這意味着它已經發布。沒有必要檢查是否發佈,需要檢查的是如果發佈數據在那裏。

我希望我說清楚。^_ ^但確保一點都不差。快樂的編碼朋友。

相關問題