Login with curl and move to another page

前端 未结 3 1014
执笔经年
执笔经年 2020-12-20 13:46

I\'m trying to access one page in a website with CURL, however it needs to be logged in i tried the code to login and it was successful



        
3条回答
  •  旧时难觅i
    2020-12-20 14:07

    If you want to go to /buy after you log in, just use the same curl handle and issue another request for that page. cURL will retain the cookies for the duration of the handle (and on subsequent requests since you are saving them to a file and reading them back with the cookie jar.

    For example:

    $user_agent       = "Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140319 Firefox/24.0 Iceweasel/24.4.0";
    $curl_crack = curl_init();
    
    CURL_SETOPT($curl_crack,CURLOPT_URL,"https://www.vininspect.com/en/account/login");
    CURL_SETOPT($curl_crack,CURLOPT_USERAGENT,$user_agent);
    CURL_SETOPT($curl_crack,CURLOPT_PROXY,"183.78.169.60:37899");
    CURL_SETOPT($curl_crack,CURLOPT_PROXYTYPE,CURLPROXY_SOCKS5);
    CURL_SETOPT($curl_crack,CURLOPT_POST,True);
    CURL_SETOPT($curl_crack,CURLOPT_POSTFIELDS,"LoginForm[email]=naceriwalid%40hotmail.com&LoginForm[password]=passwordhere&toploginform[rememberme]=0&yt1=&toploginform[rememberme]=0");
    CURL_SETOPT($curl_crack,CURLOPT_RETURNTRANSFER,True);
    CURL_SETOPT($curl_crack,CURLOPT_FOLLOWLOCATION,True);
    CURL_SETOPT($curl_crack,CURLOPT_COOKIEFILE,"cookie.txt"); //Put the full path of the cookie file if you want it to write on it
    CURL_SETOPT($curl_crack,CURLOPT_COOKIEJAR,"cookie.txt"); //Put the full path of the cookie file if you want it to write on it
    CURL_SETOPT($curl_crack,CURLOPT_CONNECTTIMEOUT,30);
    CURL_SETOPT($curl_crack,CURLOPT_TIMEOUT,30);  
    
    $exec = curl_exec($curl_crack);
    if(preg_match("/^you are logged|logout|successfully logged$/i",$exec))
    {
        $post = array('search' => 'keyword', 'abc' => 'xyz');
    
        curl_setopt($curl_crack, CURLOPT_POST, 1); // change back to GET
        curl_setopt($curl_crack, CURLOPT_POSTFIELDS, http_build_query($post)); // set post data
        curl_setopt($curl_crack, CURLOPT_URL, 'http://example.com/buy'); // set url for next request
    
        $exec = curl_exec($curl_crack); // make request to buy on the same handle with the current login session
    }
    

    Here are some other examples of using PHP & cURL to make multiple requests:

    How to login in with Curl and SSL and cookies (links to multiple other examples)

    Grabbing data from a website with cURL after logging in?

    Pinterest login with PHP and cURL not working

    Login to Google with PHP and Curl, Cookie turned off?

    PHP Curl - Cookies problem

提交回复
热议问题