模拟post失败 为什么?

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

$url='http://127.0.0.1/think_proj/review/index.php/Curl';
$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';
$post_fields='checkname='.urlencode($name).'&checknum='.$num;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $cookie_id);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
$contents = curl_exec($ch);
curl_close($ch);echo $contents;

为什么输出来的都是提交前的 画面,一直得不到post后的画面 我哪里写错了。。
...全文
217 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
h420943302 2012-12-12
  • 打赏
  • 举报
回复
呵呵 谢谢大家的 回答 我已经解决了 cookie 抓包得到的 可用的 我上面说了 是可以到达 指定页面的 (也就是cookie可用) 只是没有post效果
xuzuning 2012-12-11
  • 打赏
  • 举报
回复
你的 $cookie_id 的值是从哪里来的? 看上去表单是 ThinkPHP 的,如果目标页启用了 token,那么你这静态的 cookie 是不可能通过验证的
www_7di_net 2012-12-11
  • 打赏
  • 举报
回复
// 模拟请求数据 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"; $postfields='g=yes&username=see7di&password=www.7di.net999&id=&code='; $a=Curl($url,$postfields); unSet($postfields,$url); Echo "<textarea style='width:100%;height:200px'>",Chr(10),$a,Chr(10),"</textarea>";Die(); 你試試我這個

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧