大家好,我是一名php新手,想使用php登录http://365.269.net/,自己有帐号和密码。
1、请问在使用curl库时,$url这个变量要怎么获得?,自己看过几个模拟登录的例子,对于每个例子中的$url变量是怎么来的都没有搞清楚。
2、对于$post_data的格式,是不是也因为网站的不同而不同,希望哪位高手能解释一下array()里面的每个参数都是怎么来的。
在此先谢谢下面回复的各位了

解决方案 »

  1.   

    建议看看php100的视频http://www.php100.com/html/shipinjiaocheng/PHP100shipinjiaocheng/2010/0628/4848.html
    http://www.php100.com/html/shipinjiaocheng/PHP100shipinjiaocheng/2010/0621/4795.html
      

  2.   

    你好,这两个视频我都看完了,我发现我要登录的页面那个登录地址是action="index.aspx?pkId=2172&szxy=_ctl4_iframe",而例子中的直接是action="login.php"。
    是不是说明这个网站是ASP写的,那我们用PHP还能模拟登录吗?
      

  3.   

    你基本上啥也不知道,就这么开始做会有各种新问题出现不管是asp.php.xxp 这些都是开发语言...这不会影响到你的模拟登录
      

  4.   

    1、$url1 = ‘http://365.269.net/index.aspx?pkId=2172&szxy=_ctl4_iframe';
    2、$url2 = 'index.aspx?pkId=2172&szxy=_ctl4_iframe';
    读取 $url1,人工分析出全部表单变量,备用
    书写代码,用于自动解析出表单的隐藏变量的值模拟登陆流程
    1、使用 $url1 读取表单页,并解析出隐藏变量的值
    2、使用 $url2 提交,提交的数据要包含解析出隐藏变量的值
      

  5.   

    你模拟登陆的应该是
    http://365.269.net/index.aspx?pkId=2172&szxy=_ctl4_iframe
    这个吧。
    建议你装一个firebug如果ff浏览器,chrome自带了,一般F12就能看网络请求了,那里有详细的url路径,和你要post的值,然后你把这些都丢到curl里面,还是深入研究知识吧,建议别着急。
      

  6.   

    你好,我对这个网页分析之后发现要我POST进去的值应该就是3个吧,一个username,一个password,还有一个user_type(这个我不清楚要不要用,暂时没有使用)
    那我就用$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);
    ?>
      

  7.   

    表单中至少还有
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE4MTY4NTk4NTIPZBYCZg9kFgICAw9kFgICAQ9kFgJmDw8WAh4EVGV4dAUfbGlicmFyaWVzVGVtcGxhdGVJZD00MkBpZD1fY3RsMGRkZIoX+VljozxCxR22ZRV6v8B6LZ91" />
    你没有注意到表单在加载时执行的那些 js 是否会产生新的表单变量,你也没有做出分析所有的表单变量都需要被提交,不是你想提交哪个就提交哪个的你还得假定它使用了session。所以第一轮需要记录cookie( CURLOPT_COOKIEJAR),第二轮需要发送cookie( CURLOPT_COOKIEFILE)否则就不能正确的传送 sessionid