我的问题是在两个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文件中的表单一样 如何才能将其重定向到第二个文件?
答案 0 :(得分:1)
您需要添加以下内容以重定向到dd.php
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
答案 1 :(得分:0)
您似乎误解了网络请求的工作方式,所以让我们退后一步......
当用户从一个页面转到另一个页面时,服务器不会发生这种情况。 客户端是。用户的浏览器正在显示页面,然后它发出对另一页面的请求。重定向的也为真。在重定向的情况下,服务器正在使用重定向地址进行响应,并且客户端正在获取该信息并发出另一个请求。
步骤顺序如下:
在任何时候,都不会向网页3发送任何内容。因此,除非您将数据保存在两个页面都可以访问的位置(会话,数据库等),否则您需要用户发送数据。在此特定方案中,必须将其作为重定向中的查询字符串值。 (因为重定向会导致GET请求。)像这样:
header('Location: dd.php?Hello=World&Foo=Bar&Baz=Wombat');
这会像其他任何重定向一样重定向用户,而URL只包含您希望用户携带到下一页的值。
如果您不希望用户查看数据,或者是大量数据,那么您将希望回退到某些服务器端持久性(会话,数据库)等,而不是通过请求本身路由数据。
或者,您可以像现在一样发出cURL请求,然后执行重定向。但我高度怀疑这是你想要的,因为这会向目标页面发出两个请求。一个由服务器发布以发布数据,另一个完全独立于客户端发布以导航到页面。这些请求与彼此无关,也不会共享数据。