繁体   English   中英

使用带有令牌的php curl登录

[英]Login with php curl with token

我正在尝试登录https://www.amzreviewtrader.com/ (感谢https://www.amzreviewtrader.com/account.php页面)。 我注意到,总是会有令牌鞭打会改变每次刷新。 所以第一次卷曲我就明白了。 之后,我尝试使用发布方法传递令牌,电子邮件和密码。 但我无法登录,我不知道为什么。

function grab_page($site){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
        curl_setopt($ch, CURLOPT_TIMEOUT, 40);
        curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
        curl_setopt($ch, CURLOPT_URL, $site);
        ob_start();
        return curl_exec ($ch);
        ob_end_clean();
        curl_close ($ch);
    }

    function login($url){

    $get_token = curl_init($url);
      curl_setopt($get_token, CURLOPT_COOKIEJAR, "cookie.txt");
      curl_setopt($get_token, CURLOPT_COOKIEFILE, "cookie.txt");
      curl_setopt($get_token, CURLOPT_TIMEOUT, 40000);
      curl_setopt($get_token, CURLOPT_RETURNTRANSFER, TRUE);
      curl_setopt($get_token, CURLOPT_URL, $url);
      curl_setopt($get_token, CURLOPT_FOLLOWLOCATION, TRUE);
      $response = curl_exec($get_token);
      $html = str_get_html($response);
      $token = $html->find('div.col-xs-12 form.form-horizontal input')[0]->value;
      echo $token;

        $login = curl_init($url);
        curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
        curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
        curl_setopt($login, CURLOPT_TIMEOUT, 40000);
        curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($login, CURLOPT_URL, $url);
        curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($login, CURLOPT_POST, TRUE);
        curl_setopt($login, CURLOPT_POSTFIELDS, "account_token=".$token."&email=xxxxxxxxx@xxxxx.xx&password=xxxxxxx");
        return curl_exec ();
        curl_close ();

        grab_page("https://www.amzreviewtrader.com/product-list.php");
    }

您可以执行以下操作来获取令牌:

function getStr($string,$start,$end){
$str = explode($start,$string);
$str = explode($end,$str[1]);
return $str[0];
    }

    $token = getStr($url, 'var token = "','"');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM