如何在php中不使用curl或fsocket将post数据发送到任何url(带重定向)
我想我的网页被重定向到新的网址与一些张贴数据被发送到它。 我不想使用curl或fsocket,因为它们不会将用户重定向到新的url 标题是否有其他选择(“位置:blahblahblah”);发送post数据? 我尝试了document.form.submit();它确实有效,但一些用户面临javascript的问题 有谁能提供替代解决方案吗? 是否有任何php函数将用户重定向到新url以及发送到此url的一些post数据如何在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”)有什么问题吗??这就是
提前感谢。使用
标题(“位置:$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不是强制性的,则可以选择其他解决方案:
- 重定向用户并通过查询字符串传输数据
- 在会话中保存数据并重定向用户