Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中不使用curl或fsocket将post数据发送到任何url(带重定向)_Php_Post_Curl_Redirect - Fatal编程技术网

如何在php中不使用curl或fsocket将post数据发送到任何url(带重定向)

如何在php中不使用curl或fsocket将post数据发送到任何url(带重定向),php,post,curl,redirect,Php,Post,Curl,Redirect,我想我的网页被重定向到新的网址与一些张贴数据被发送到它。 我不想使用curl或fsocket,因为它们不会将用户重定向到新的url 标题是否有其他选择(“位置:blahblahblah”);发送post数据? 我尝试了document.form.submit();它确实有效,但一些用户面临javascript的问题 有谁能提供替代解决方案吗? 是否有任何php函数将用户重定向到新url以及发送到此url的一些post数据 提前感谢。使用标题(“位置:$new\u url”)有什么问题吗??这就是

我想我的网页被重定向到新的网址与一些张贴数据被发送到它。 我不想使用curl或fsocket,因为它们不会将用户重定向到新的url

标题是否有其他选择(“位置:blahblahblah”);发送post数据? 我尝试了document.form.submit();它确实有效,但一些用户面临javascript的问题

有谁能提供替代解决方案吗? 是否有任何php函数将用户重定向到新url以及发送到此url的一些post数据


提前感谢。

使用
标题(“位置:$new\u url”)有什么问题吗?
?这就是执行重定向,是在
POST
ing数据之后执行重定向的正确方法

编辑:更新以澄清这不是发布数据的方式

function do_post_request($url, $data, $optional_headers = null)
  {
     $params = array('http' => array(
                  'method' => 'POST',
                  'content' => $data
               ));
     if ($optional_headers !== null) {
        $params['http']['header'] = $optional_headers;
     }
     $ctx = stream_context_create($params);
     $fp = @fopen($url, 'rb', false, $ctx);
     if (!$fp) {
        throw new Exception("Problem with $url, $php_errormsg");
     }
     $response = @stream_get_contents($fp);
     if ($response === false) {
        throw new Exception("Problem reading data from $url, $php_errormsg");
     }
     return $response;
 }

看看这个链接

执行重定向的标准方法是使用javascript,对吗?您需要有一个简单的页面,其中您可以:

a) 生成一个表单,其中操作url是您想要去的地方

b) 写入隐藏字段以包含post_数据


c) 让javascript在加载时为您提交表单

您无法使用PHP模拟表单的行为。您可以发送POST数据,但不能重定向具有相同请求的用户。你需要用一张表格。正如Igor所描述的,可以使用Javascript更改表单的预期行为,但我建议不要这样做。

如果您只需要传输数据,但POST不是强制性的,则可以选择其他解决方案:

  • 重定向用户并通过查询字符串传输数据
  • 在会话中保存数据并重定向用户

您不能以这种方式发送HTTP POST请求。使用标头没有问题(“…,但是我如何使用它发送post数据呢?它只会将我重定向到新页面。是的,我可以在查询参数中发布数据,但我不想这样做,因为我有太多的参数和数据。是的,我确实尝试了与您指定的相同的方法,但我需要在PHP中本机使用其他解决方案(不使用任何javascript)是的,它使用的是一些表单隐藏字段和javascript,但我想用php本机提供另一种解决方案。我不能使用javascript,因为如果它在浏览器中被关闭,可能会给我的用户带来很大的问题。