如何从另一个页面访问包含$ _POST的变量?

时间:2018-04-14 09:23:13

标签: php html forms

我有一个html页面,顶部的PHP表单验证,以检查字段是否为空,之后是一个html表单,之后一些html显示错误消息,如果字段没有填写。表单的顶部看起来像:

  <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">

在页面顶部的PHP中,我检查输入字段是否为空。

if($_SERVER["REQUEST_METHOD"]==='POST')
{

          if($_POST["field1"]==""){
                    $errormessage = "field1 is not empty";

           }elseif($_POST["field2"]==""){
                 $errormessage = "field1 is not empty";
            }else{
            // if the fields are both filled in i want to send the form 
            //variables to mailing.php where are the variables are mailed

}

这是我的页面中错误代码的html:      

如果两个字段都已填满,我想将POST数据发送到mailing.php,我可以将变量格式化为html电子邮件。

因为我有很多变量,我想使用以下命令将整个$ _POST变量发送到mailing.php:

header('location:mailing.php?post='.$_POST);

但是如何在mail.php中访问$ _POST中的varable? 这不起作用:

$inputfield = $_GET["post"]["field1"];

1 个答案:

答案 0 :(得分:1)

这是一个糟糕的设计。 您应该包含mailing.php并根据某些条件编写一个逻辑来访问$_POST。但是,如果您仍希望转发请求,则可以使用cURL

来实现
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com/mailing.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
$data = curl_exec($ch);
curl_close($ch);