大家好,我是一名php新手,想使用php登录http://365.269.net/,自己有帐号和密码。
1、请问在使用curl库时,$url这个变量要怎么获得?,自己看过几个模拟登录的例子,对于每个例子中的$url变量是怎么来的都没有搞清楚。
2、对于$post_data的格式,是不是也因为网站的不同而不同,希望哪位高手能解释一下array()里面的每个参数都是怎么来的。
在此先谢谢下面回复的各位了
1、请问在使用curl库时,$url这个变量要怎么获得?,自己看过几个模拟登录的例子,对于每个例子中的$url变量是怎么来的都没有搞清楚。
2、对于$post_data的格式,是不是也因为网站的不同而不同,希望哪位高手能解释一下array()里面的每个参数都是怎么来的。
在此先谢谢下面回复的各位了
http://www.php100.com/html/shipinjiaocheng/PHP100shipinjiaocheng/2010/0621/4795.html
是不是说明这个网站是ASP写的,那我们用PHP还能模拟登录吗?
2、$url2 = 'index.aspx?pkId=2172&szxy=_ctl4_iframe';
读取 $url1,人工分析出全部表单变量,备用
书写代码,用于自动解析出表单的隐藏变量的值模拟登陆流程
1、使用 $url1 读取表单页,并解析出隐藏变量的值
2、使用 $url2 提交,提交的数据要包含解析出隐藏变量的值
http://365.269.net/index.aspx?pkId=2172&szxy=_ctl4_iframe
这个吧。
建议你装一个firebug如果ff浏览器,chrome自带了,一般F12就能看网络请求了,那里有详细的url路径,和你要post的值,然后你把这些都丢到curl里面,还是深入研究知识吧,建议别着急。
那我就用$post_data = 'username=XXXXXX&password=XXXXXX';
但这样还是登录不上。附上我的代码
<?php
// create a new curl resource
$ch = curl_init();
$cookie_file = tempnam('./temp','cookie');
$post_fileds = 'username=XXXXXX&password=XXXXXX';// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, 'http://365.269.net/index.aspx?pkId=2172&szxy=_ctl4_iframe');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
// grab URL
$output = curl_exec($ch);
// Get response code
curl_close($ch);
?>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE4MTY4NTk4NTIPZBYCZg9kFgICAw9kFgICAQ9kFgJmDw8WAh4EVGV4dAUfbGlicmFyaWVzVGVtcGxhdGVJZD00MkBpZD1fY3RsMGRkZIoX+VljozxCxR22ZRV6v8B6LZ91" />
你没有注意到表单在加载时执行的那些 js 是否会产生新的表单变量,你也没有做出分析所有的表单变量都需要被提交,不是你想提交哪个就提交哪个的你还得假定它使用了session。所以第一轮需要记录cookie( CURLOPT_COOKIEJAR),第二轮需要发送cookie( CURLOPT_COOKIEFILE)否则就不能正确的传送 sessionid