PHP在表单提交后重定向到新页面

时间:2014-02-12 14:33:07

标签: php redirect curl action

我有一个表单,在提交表单后将用户重定向到“page1.php”。我想要做的是在提交表单后将用户重定向到“page2.php”,但我需要确保发送了POST请求。例如:

<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或类似的东西做到这一点?有什么例子吗?

谢谢!

5 个答案:

答案 0 :(得分: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');
        }
}   
?>

答案 1 :(得分:1)

您可以使用以下内容检查POST请求是否已发送:

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

您可以在表单中创建隐藏的输入,并发送有关提交表单的其他信息,例如:动作。

在你内部,你将使用:

进行魔术并重定向用户
header('Location: page2.php');
exit();

答案 2 :(得分:0)

在“page1.php”处理器中,将“标题”重定向添加到“page2.php”。

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

答案 3 :(得分:0)

您可以检查查询是否完整

示例

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

答案 4 :(得分:0)

在您的情况下,您只需检查发布的数据即可。像

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

合乎逻辑的是,如果这些不是空的,意味着它们被张贴。即使它们是空的,只要你到达那里,这意味着它被张贴了。如果发布了数据,则无需检查是否已发布,需要检查的内容。

我希望我说清楚。 ^ _ ^但确保一点都不差。快乐的编码朋友。