将POST数据传递给两个php文件


Pass POST data to two php files

你好,我希望这将是一个容易的解决。

简单地说,我想做以下事情:

1)有一个表单,用户输入数据(estimate.html)并提交给validate.php

2)从validate.php,检查POST数据,如果一切正常,用户按下提交按钮,然后将相同的POST数据发送到submit .php。

是否有任何简单的方法来发送相同的确切的POST数据从原始形式在我的两个php文件?(希望没有会话)

estimate.html -> validate.php -> submission.php

我现在拥有的:

我有一个表单,可以有未知数量的字段,可以传递到validate.php。

我已经验证了发送给validate.php的POST数据中的所有条目。如果所有数据都验证成功,那么与其将所有数据插入隐藏字段并将数据重新提交到submit .php,还不如重新发送发送到validate.php的POST ?

是的!仅使用会话或隐藏字段。我猜. .

你也可以使用隐藏数组来减小元素的大小。

<input type="hidden" value="array('username'=>'user','password'=>'password');">

之类的

您可以在validate.php

中接收到post数据时将其移动到会话超全局变量中
$_SESSION['username'] = $_POST['username'];
$_SESSION['password'] = $_POST['password'];

这将使该变量对客户端在该会话中运行的任何后续php页面可用,直到它被取消设置。

或者您可以在包含提交按钮的表单中使用隐藏输入

<input type="hidden" name="username" value="<?php echo $_POST['username']; ?>">
<input type="hidden" name="password" value="<?php echo $_POST['password']; ?>">
<input type="button" ... >
etc

这取决于您希望这些数据在哪里可用的范围。

您还可以将确认页面构建到最终页面中,您只需重新提交到同一页面,并断言一个额外的确认帖子变量,您可以检查并继续执行

我看到了两种确保发布到submission.php的数据与发布到validate.php的数据相同的方法:

  1. 您可以使用PHP从validate.php中发布数据到submission.php:

    $data = file_get_contents('php://input');
    $options = array('http' =>
        array(
            'method'  => 'POST',
            'content' => $data,
        )
    );
    $context = stream_context_create($options);
    $result = file_get_contents('submission.php', false, $context);
    
  2. 您可以将POST数据的哈希值返回给客户端,而该哈希值将附加到POST到submission.php。哈希应该包含发布的数据和validate.phpsubmission.php共享的安全密钥。然后,后者应该重新计算输入数据的哈希值,以检查数据是否被验证。