Home > Backend Development > PHP Tutorial > 模拟post失败 为何

模拟post失败 为何

WBOY
Release: 2016-06-13 13:00:05
Original
990 people have browsed it

模拟post失败 为什么?

本帖最后由 h420943302 于 2012-12-11 11:18:30 编辑
<form action="__URL__/test" method="post"><br />
<tr><br />
<td width="90" align="right" height="26">被认证人姓名:</td><br />
<td style="text-align: left"><br />
<input name="checkname" type="text" size="12" /><font color="#FF0000">*</font>(请填写中文字符)<br />
</td></tr><br />
<tr><br />
<td width="90" align="right" height="26">身份证号:</td><br />
<td style="text-align: left"><br />
<input name="checknum" type="text" size="16" /><font color="#FF0000">*</font>(15或18位数字)<br />
</td></tr><br />
<tr><br />
<td width="90"> </td><br />
<td><br />
<input type="submit" name="button01" value="确认身份信息认证" id="button01"  /><br />
</td></tr></form>
Copy after login

$url='http://127.0.0.1/think_proj/review/index.php/Curl';<br />
$cookie_id=' ECS[visit_times]=2;vvxU_2132_saltkey=oAOaIinB;vvxU_2132_lastvisit=1353993212; vvxU_2132_ulastactivity=1fcbqdoGt1V5Yt5eRaTVuz%2Bwjv1qvM09zYAqbDb4KL6RKzWORniM; lzstat_uv=11374893582414091332|923667; PHPSESSID=pcq1alboi8sq3r9n7d32du20m6';<br />
$post_fields='checkname='.urlencode($name).'&checknum='.$num;<br />
$ch = curl_init($url);<br />
curl_setopt($ch, CURLOPT_POST, 1);<br />
curl_setopt($ch, CURLOPT_HEADER, 0);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />
curl_setopt($ch, CURLOPT_COOKIE, $cookie_id);<br />
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);<br />
$contents = curl_exec($ch);<br />
curl_close($ch);echo $contents;
Copy after login

为什么输出来的都是提交前的 画面,一直得不到post后的画面 我哪里写错了。。
------解决方案--------------------
// 模拟请求数据
Function Curl($url,$postfields,$referer='',$cookie_jar='./cookie.txt'){
$Cur = curl_init();
$Opt = Array(
CURLOPT_URL => $url,
CURLOPT_HEADER => 1,
CURLOPT_NOBODY => 1,
CURLOPT_PORT => 80, //端口
CURLOPT_POST => 1, //发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
CURLOPT_POSTFIELDS => $postfields,//要传送的所有数据,如果要传送一个文件,需要一个@开头的文件名
CURLOPT_RETURNTRANSFER => 1,// 获取的信息以文件流的形式返回,而不是直接输出。

CURLOPT_SSL_VERIFYHOST => 1,// 从证书中检查SSL加密算法是否存在
CURLOPT_SSL_VERIFYPEER => 0,// 对认证证书来源的检查,0表示阻止对证书的合法性的检查。
//CURLOPT_COOKIE => GetCook($url),

//CURLOPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)",//模拟用户使用的浏览器,在HTTP请求中包含一个"user-agent"头的字符串。
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1',
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_COOKIEJAR => Dirname(__FILE__).$cookie_jar,
CURLOPT_COOKIEFILE => Dirname(__FILE__).$cookie_jar,
CURLOPT_REFERER => $referer,
);
curl_setopt_array($Cur,$Opt);
$code = curl_exec($Cur);
curl_close($Cur);
unSet($Cur);
Return $code;
}

Function GetCook($url) {
$Curl=curl_init($url);
curl_setopt($Curl,CURLOPT_HEADER,1);
curl_setopt($Curl,CURLOPT_RETURNTRANSFER,1);
$Cook=curl_exec($Curl);
curl_close($Curl);
$Out='';
preg_match("/ssid\=(.[^;]*)/i",$Cook,$Out);
Return $Out[1];
}

$url = "http://pcik.7di.net/pcik_in";
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template