用php发送$ _POST并将浏览器重定向到结果页面 [英] Send $_POST with php and redirect the browser to the resulting page

查看:104
本文介绍了用php发送$ _POST并将浏览器重定向到结果页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何发送$ _POST并转到发布页面



我试图

  $ rCurl = curl_init(); 
curl_setopt($ rCurl,CURLOPT_URL,SECUREURL.basename($ _ SERVER ['PHP_SELF']));
curl_setopt($ rCurl,CURLOPT_TIMEOUT,60);
curl_setopt($ rCurl,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ rCurl,CURLOPT_RETURNTRANSFER,0);
curl_setopt($ rCurl,CURLOPT_POSTFIELDS,$ sPostData);
curl_setopt($ rCurl,CURLOPT_POST,1);
// $ sHtmlResult = curl_exec($ rCurl);
curl_exec($ rCurl);
curl_close($ rCurl);

但结果返回页面,没有任何重定向目标页面结果



如何发送$ _POST数据并发送此页面

  header(Location: .SECUREURL.basename($ _ SERVER [ 'PHP_SELF'])$ sPostData)。 ?。 


解决方案

您的$ sPostData看起来像什么?



在POSTing之前,我使用以下内容为CURL编码数组。
$ b

  foreach($ post as $ key => $ value){$ b包含一个POST字段的关联数组$ b $ postString。= urlencode($ key)。 '='。 urlencode($ value)。 &安培;; 
}
rtrim($ postString,'&');

然后:

  curl_setopt($ ch,CURLOPT_POST,count($ post)); 
curl_setopt($ ch,CURLOPT_POSTFIELDS,$ postString);

想法是CURLOPT_POSTFIELDS应该看起来像一个GET字符串和URL编码。



您可能还需要设置CURLOPT_USERAGENT,CURLOPT_ENCODING和CURLOPT_HTTPHEADER。对于调试,您可以启用CURLOPT_HEADER,CURLOPT_HEADER和CURLINFO_HEADER_OUT。

How to send $_POST and go to posting page

I'm trying

$rCurl = curl_init();
curl_setopt ($rCurl, CURLOPT_URL, SECUREURL.basename($_SERVER['PHP_SELF']));
curl_setopt ($rCurl, CURLOPT_TIMEOUT, 60);
curl_setopt ($rCurl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($rCurl, CURLOPT_RETURNTRANSFER, 0);
curl_setopt ($rCurl, CURLOPT_POSTFIELDS, $sPostData);
curl_setopt ($rCurl, CURLOPT_POST, 1);
//$sHtmlResult = curl_exec ($rCurl);
curl_exec ($rCurl);
curl_close($rCurl);

but results return to page and nothing redirect ot destination page whit result

How to send $_POST data and going to posting page like this

header("Location:".SECUREURL.basename($_SERVER['PHP_SELF'])."?".$sPostData); 

解决方案

What does your $sPostData look like?

I use the following to encode arrays for CURL before POSTing. $post contains an associative array of POST fields.

foreach($post as $key=>$value) { 
  $postString  .= urlencode($key) . '=' . urlencode($value) . '&'; 
}
rtrim($postString,'&');

Then:

curl_setopt($ch, CURLOPT_POST, count($post));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);  

The idea is that CURLOPT_POSTFIELDS should look like a GET string and URL encoded.

You may also need to set CURLOPT_USERAGENT, CURLOPT_ENCODING, CURLOPT_HTTPHEADER. For debugging you can enable CURLOPT_HEADER, CURLOPT_HEADER and CURLINFO_HEADER_OUT.

这篇关于用php发送$ _POST并将浏览器重定向到结果页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆