簡體   English   中英

通過以下三個步驟通過php登錄網站

[英]Login to website via php in three steps

我可以通過PHP登錄網站並獲取內容並執行其他操作。 看我的編碼:

    <?php

    //Upload a blank cookie.txt to the same directory as this file with a CHMOD/Permission to 777
    function login($url,$data){
        $fp = fopen("cookie.txt", "w");
        fclose($fp);
        $login = curl_init();
        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_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
        curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($login, CURLOPT_POST, TRUE);
        curl_setopt($login, CURLOPT_POSTFIELDS, $data);
        ob_start();
        return curl_exec ($login);
        ob_end_clean();
        curl_close ($login);
        unset($login);    
    }                  

    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 post_data($site,$data){
        $datapost = curl_init();
            $headers = array("Expect:");
        curl_setopt($datapost, CURLOPT_URL, $site);
            curl_setopt($datapost, CURLOPT_TIMEOUT, 40000);
        curl_setopt($datapost, CURLOPT_HEADER, TRUE);
            curl_setopt($datapost, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($datapost, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
        curl_setopt($datapost, CURLOPT_POST, TRUE);
        curl_setopt($datapost, CURLOPT_POSTFIELDS, $data);
            curl_setopt($datapost, CURLOPT_COOKIEFILE, "cookie.txt");
        ob_start();
        return curl_exec ($datapost);
        ob_end_clean();
        curl_close ($datapost);
        unset($datapost);    
    }
?>
<?php
    //for grabbing:
  echo function grab_page("https://accounts.google.com/ServiceLogin?service=mail&continue=https://mail.google.com/mail/#identifier");
   ?>
And for login it is:
<?php
    function login(https://accounts.google.com/ServiceLogin?service=mail&continue=https://mail.google.com/mail/#identifier,username and password){
    $fp = fopen("cookie.txt", "w");
?>

這些東西只是簡單地抓住頁面並自動登錄即可正常工作,並且可以在大多數網站上工作。 問題是我要登錄的網站是3步,意味着輸入用戶名和密碼后,它會顯示以下屏幕: http : //i.imgur.com/sL7Pwgn.png勾選圖像並輸入密碼。 即使輸入了它,它也會顯示一個新屏幕,例如: http ://i.imgur.com/3iLDFFI.png,每次我以另一個身份登錄時它都會隨機出現:i.imgur.com/Ee85kre.png問題是如何解決我通過PHP curl跨越所有障礙登錄。我搜索了Google,但甚至只是簡單的登錄腳本就出現了。請提出一些建議。

您可以嘗試使用在數據庫中連接到用戶的令牌進行嘗試。 每個用戶的唯一身份。

注冊時,您可以使用用戶名,密碼ip和鹽創建一個。 然后,您將帶有URL中標記的鏈接郵寄給新用戶的鏈接,當您的腳本提取該鏈接時,當所有設置正確時,將用戶登錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM