3

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

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

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 吗?

4

3 回答 3

1

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

您还可以在隐藏中使用数组来减小元素的大小。

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

类似的东西。

于 2013-05-08T09:42:17.873 回答
0

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

  1. 您可以使用 PHPsubmission.php从内部发布数据:validate.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.php散列应该包含发布的数据和由和共享的保密密钥submission.php。然后后者应重新计算输入数据的哈希值以检查数据是否经过验证。

于 2013-05-14T09:45:13.293 回答
0

您可以在 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

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

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

于 2013-05-14T09:28:39.993 回答