如何在两个php文件之间发布变量

时间:2015-07-27 18:47:27

标签: php forms

我的问题是在两个php文件之间发送变量
我知道有这些东西的会话,但我不想使用会话...我希望有一些东西,因为它以html形式POST ..我在这两个文件之间使用cURL这样 ss.php

<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"http://localhost/dd.php");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, "Hello=World&Foo=Bar&Baz=Wombat");

curl_exec ($curl);
curl_close ($curl);
?>

并且有第二个名为dd.php的文件

<?php
echo $_POST['Hello'];
?>

它工作正常,但问题是它没有重定向到dd.php文件...就像在html文件中的表单一样 如何才能将其重定向到第二个文件?

2 个答案:

答案 0 :(得分:1)

您需要添加以下内容以重定向到dd.php

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

答案 1 :(得分:0)

您似乎误解了网络请求的工作方式,所以让我们退后一步......

当用户从一个页面转到另一个页面时,服务器不会发生这种情况。 客户端是。用户的浏览器正在显示页面,然后它发出对另一页面的请求。重定向的为真。在重定向的情况下,服务器正在使用重定向地址进行响应,并且客户端正在获取该信息并发出另一个请求。

步骤顺序如下:

  1. 用户访问第1页。
  2. 用户请求第2页。
  3. Page 2通过重定向回应第3页。
  4. 用户请求第3页。(浏览器会自动执行此操作。)
  5. Page 3回应内容。
  6. 在任何时候,都不会向网页3发送任何内容。因此,除非您将数据保存在两个页面都可以访问的位置(会话,数据库等),否则您需要用户发送数据。在此特定方案中,必须将其作为重定向中的查询字符串值。 (因为重定向会导致GET请求。)像这样:

    header('Location: dd.php?Hello=World&Foo=Bar&Baz=Wombat');
    

    这会像其他任何重定向一样重定向用户,而URL只包含您希望用户携带到下一页的值。

    如果您不希望用户查看数据,或者是大量数据,那么您将希望回退到某些服务器端持久性(会话,数据库)等,而不是通过请求本身路由数据。

    或者,您可以像现在一样发出cURL请求,然后执行重定向。但我高度怀疑这是你想要的,因为这会向目标页面发出两个请求。一个由服务器发布以发布数据,另一个完全独立于客户端发布以导航到页面。这些请求与彼此无关,也不会共享数据。