zoukankan      html  css  js  c++  java
  • 使用curl进行模拟登录

      1. <?php
      2. $cookie_path = './'; //设置cookie保存路径
      3.  
      4. //-----登录要提交的表单数据---------------
      5. $vars['username'] = '张三';
      6. $vars['pwd'] = '123';
      7. //-------------------------------------
      8. $method_post = true;
      9. //登录提交的url地址(表单中的action的绝对地址)
      10. $url = 'http://****.com/login';
      11. //----------------------------
      12.  
      13. $ch = curl_init();
      14. $params[CURLOPT_URL] = $url; //请求url地址
      15. $params[CURLOPT_HEADER] = true; //是否返回响应头信息
      16. $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
      17. $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向
      18. $params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';

      19. $postfields = '';
      20. foreach ($vars as $key => $value){
      21. $postfields .= urlencode($key) . '=' . urlencode($value) . '&';
      22. }

      23. $params[CURLOPT_POST] = true;
      24. $params[CURLOPT_POSTFIELDS] = $postfields;

      25. //判断是否有cookie,有的话直接使用
      26. if (isset($_COOKIE['cookie_jar']) && ($_COOKIE['cookie_jar'] || is_file($_COOKIE['cookie_jar'])))
      27. {
      28. $params[CURLOPT_COOKIEFILE] = $_COOKIE['cookie_jar']; //这里判断cookie
      29. }
      30. else
      31. {
      32. $cookie_jar = tempnam($cookie_path, 'cookie'); //产生一个cookie文件
      33. $params[CURLOPT_COOKIEJAR] = $cookie_jar; //写入cookie信息
      34. setcookie('cookie_jar', $cookie_jar); //保存cookie路径
      35. }
      36. curl_setopt_array($ch, $params); //传入curl参数
      37. $content = curl_exec($ch); //执行
      38.  
      39. echo '
      40. ';
      41. echo $content; //输出登录结果
      42. /*
      43. //---------登录成功后再次请求其他地址,如果有多个可以循环执行---------
      44. echo '
      45. ';
      46. $nexturl = 'http://****.com/test';
      47. $params[CURLOPT_URL] = $nexturl;
      48. $params[CURLOPT_POSTFIELDS] = '';
      49. curl_setopt_array($ch, $params); //传入curl参数
      50. $content = curl_exec($ch); //执行
      51. echo $content; //输出请求结果
      52. //-------------------------------------------------
      53. */
      54. curl_close($ch); //关闭连接

      55. ?>
  • 相关阅读:
    FiddlerScript修改特定请求参数下的返回值
    nginx设置反向代理后,页面上的js css文件无法加载
    通过外网访问内网服务器
    linux下使用正确的用户名密码,本地无法连接mysql
    合并重叠时间段C#
    数据库一直显示为单用户,解决办法
    windows下使用tomcat部署网站
    数据库一直还原中,解决办法
    通过mdf ldf文件还原数据库
    知道css有个content属性吗?有什么作用?有什么应用?
  • 原文地址:https://www.cnblogs.com/mhj66/p/6391746.html
Copyright © 2011-2022 走看看