【问题标题】:PHP Redirect to new page after form submission表单提交后PHP重定向到新页面
【发布时间】:2014-03-10 22:49:23
【问题描述】:

我有一个表单,它在提交表单后将用户重定向到“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 或类似的东西来做吗?有什么例子吗?

谢谢!

【问题讨论】:

标签: php redirect curl action


【解决方案1】:

我想这行得通! 在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');
        }
}   
?>

【讨论】:

    【解决方案2】:

    您可以检查是否发送了 POST 请求,例如:

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

    您可以在表单中创建隐藏输入并发送有关已提交表单的附加信息,例如行动。

    在里面你会做你的魔法并重定向用户:

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

    【讨论】:

      【解决方案3】:

      在你的“page1.php”处理器中,添加一个“header”重定向到“page2.php”。

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

      【讨论】:

      • 这会导致双重重定向。提交页面 -> Page1 -> Page2。必须通过 1 个重定向来完成。
      • 不确定我是否理解,但如果您只能进行一次重定向,请将您的表单发布到form2.php,然后在form2.php 中,您可以通过 cURL 将表单信息发送到form1.php然后等待回复说它已被接受,然后再继续处理form2.php上的代码。
      【解决方案4】:

      您可以检查查询是否完成

      例子

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

      【讨论】:

        【解决方案5】:

        在您的情况下,您可以简单地检查发布的数据。喜欢

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

        如果这些不为空,则表示它们已发布,这是合乎逻辑的。即使它们是空的,只要你到达那里,就意味着它已经发布了。发不发不用检查,要检查的是发数据有没有。

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

        【讨论】:

          猜你喜欢
          • 2020-05-27
          • 2013-06-14
          • 1970-01-01
          • 2014-10-04
          • 2016-04-30
          • 2016-01-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多