【问题标题】:Pass POST data to two php files将 POST 数据传递给两个 php 文件
【发布时间】:2013-05-02 05:05:01
【问题描述】:

您好,我希望这将是一个简单的解决方法。

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

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

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

是否有任何简单的方法可以在我的两个 php 文件中从原始表单发送完全相同的 POST 数据? (希望没有会话)

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

我现在拥有的:

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

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

【问题讨论】:

  • 你的 validate.php 有什么.. 另一种形式?.. 你总是可以输出数据,然后再获取数据并再次发布.. 或者当然使用会话.. 还有什么你提交做不同于 validate.. 如果可以的话,您应该始终在一个文件中实现这两种功能。
  • 您可以使用 Session 成功完成。您只需要将发布数据保存到会话变量并重定向到 submit.php
  • 我认为 ajax 是最好的选择,在 validate.php 请求完成时使用回调
  • 会话是更好的选择。
  • validate.php 允许用户查看他们的项目,它还允许我在有任何不正确时提醒他们。验证和提交页面上没有表单。验证是为了查看,提交是为了实际将数据插入到数据库中。

标签: php html post web


【解决方案1】:

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

您也可以在 hidden 中使用数组来减小元素的大小。

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

类似的东西。

【讨论】:

    【解决方案2】:

    您可以在 validate.php 中收到帖子数据时将其移动到会话超全局

    $_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
    

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

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

    【讨论】:

      【解决方案3】:

      我看到有两种方法可以确保发布到 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 数据的哈希返回给客户端,该哈希将附加到 submission.php 的 POST。哈希应该包含发布的数据和validate.phpsubmission.php 共享的保密密钥。然后后者应重新计算输入数据的哈希值以检查数据是否经过验证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-25
        • 1970-01-01
        • 2022-06-10
        相关资源
        最近更新 更多