普通的表单登陆怎么修改成php curl模拟表单登陆
程序员文章站
2024-01-31 16:34:22
...
2.php
header('Content-Type:text/html;Charset=utf-8');if ($_POST['loginname'] == 'lee' && $_POST['loginpass'] == '123456') { header('location:http://bbs.csdn.net');} else { }
请教一下这样的表单怎么修改成模拟登陆 我是这样写的为什么不对呢
新建一个1.php
header('Content-type:text/html;Charset=utf-8'); $user = 'lee'; //登陆用户名 $pass = '123456'; //登陆密码 $post_fields = "loginname={$user}&loginpass={$pass}";$ch = curl_init(); curl_setopt($ch,CURLOPT_URL,'http://localhost/2.php');curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$post_fields);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_exec($ch);curl_close($ch);
回复讨论(解决方案)
echo curl_exec($ch);
另外你的2.php是跳转了,并没有返回内容。
改成echo file_get_contnets('location:http://bbs.csdn.net'); 试试
header('location:http://bbs.csdn.net');
形成的 http 头
HTTP/1.1 302 Found
Date: Wed, 26 Feb 2014 09:16:38 GMT
location: http://bbs.csdn.net
Content-Length: 0
Content-Type: text/html;Charset=utf-8
你不跟着跳转吗?
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
header('location:http://bbs.csdn.net');
形成的 http 头
HTTP/1.1 302 Found
Date: Wed, 26 Feb 2014 09:16:38 GMT
location: http://bbs.csdn.net
Content-Length: 0
Content-Type: text/html;Charset=utf-8
你不跟着跳转吗?
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
谢谢斑竹的帮忙 我改成了这样
1.php
header('Content-type:text/html;Charset=utf-8'); $user = 'lee'; //登陆用户名 $pass = '123456'; //登陆密码 $post_fields = "loginname={$user}&loginpass={$pass}";$ch = curl_init(); curl_setopt($ch,CURLOPT_URL,'http://localhost/2.php');curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$post_fields);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);curl_exec($ch);curl_close($ch);
2.php
header('Content-Type:text/html;Charset=utf-8');if ($_POST['loginname'] == 'lee' && $_POST['loginpass'] == '123456') { header('location:http://bbs.csdn.net');} else { }
执行1.php 还是空白 并没有实现跳转
#1 不是说了吗?
echo curl_exec($ch);
你不输出结果怎么能行?
谢谢大家的帮忙