我希望将我的页面重定向到新的网址,并将一些帖子数据发送给它。 我不想使用curl或fsocket,因为他们不会将用户重定向到新的URL。
标题是否有任何替代方法(“位置:blahblahblah”);发送帖子数据? 我尝试使用document.form.submit();并且它有效,但有些用户正面临着javascript的问题。
任何人都可以为此提供替代解决方案吗? 是否有任何PHP函数将用户重定向到新的URL以及一些发送到此URL的帖子数据。
提前致谢。
答案 0 :(得分:1)
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;
}
请查看此链接http://netevil.org/blog/2006/nov/http-post-from-php-without-curl
答案 1 :(得分:0)
使用header("Location: $new_url")
有什么问题?这是执行重定向,并且是 AFTER POST
数据的正确方法。
编辑:更新以澄清这不是数据的发布方式。
答案 2 :(得分:0)
使用javascript进行重定向的规范方法,对吧?你需要有一个简单的页面:
a)生成一个表单,其中操作网址是您要去的地方
b)编写隐藏字段以包含post_data
c)让javascript在加载时为您提交表单
答案 3 :(得分:0)
您无法使用PHP模仿表单的行为。您可以发送POST数据,但不能使用相同的请求重定向用户。你需要用表格来做。正如Igor所描述的那样,可以使用Javascript更改表单的预期行为,但我建议不要使用它。
答案 4 :(得分:0)
如果您只需要传输数据但POST不是必需的替代解决方案: