php
  • curl
  • 2016-03-31 11 views 0 likes 
    0

    cURLでウェブサイトにログインしようとしていますが、動作しません。 私はこのスクリプトを使用しています。cURLでログインできない

    しかし、それは動作しません、それだけでこのサイトのフォーム

    をログインせずにサイトのホームへのリダイレクトは次のとおりです。

    <form action="login.php" method="post"> 
    <input type='hidden' name='origem' value=''> 
    <input type='hidden' name='ultimo_endereco' value=''> 
    <input type='hidden' name='forma_pagamento' value=''> 
    <input type='hidden' name='video' value=''> 
    <input type='hidden' name='url' value=''> 
    <input type='hidden' name='evento' value=''> 
    <input type='hidden' name='fotos' value=''> 
    <input type='hidden' name='sessao' value=''> 
    <input type='hidden' name='lista' value=''> 
    <input type='hidden' name='perfil_longando' value=''> 
    <table align="center" width="25%" border="0" cellpadding="0" cellspacing="0"> 
    <tr><td><font face="" size="">Login:</font></td><td><input name="login_" type="text"></td></tr> 
    <tr><td><font face="" size="">Senha:</font></td><td><input name="senha_" type="password"></td></tr> 
    <tr><td>&nbsp;</td><td><input name="logar" type="submit" value="Logar"></td></tr> 
    </table> 
    </form> 
    

    スクリプト:

    <?php 
    $username="user"; 
    $password="123456"; 
    $url="http://www.example.com/login.php"; 
    $cookie="cookie.txt"; 
    
    $postdata ="login_=$username&senha_=$password&logar=Logar"; 
    
    $ch = curl_init(); 
    curl_setopt ($ch, CURLOPT_URL, $url); 
    curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
    curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
    curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0); 
    curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
    curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
    curl_setopt ($ch, CURLOPT_REFERER, $url); 
    
    curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
    curl_setopt ($ch, CURLOPT_POST, 1); 
    $result = curl_exec ($ch); 
    curl_close($ch) 
    ?> 
    

    私は何間違っている?

    +0

    はたぶん、サーバが非表示の入力をチェックして助けることができ、ここで、このコードの問題を解決しました。投稿データにすべてを追加すると機能しますか? – Barmar

    答えて

    0

    私は

    <?php 
        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); 
        } login("http://www.example.com/login.php", "origem=&ultimo_endereco=&forma_pagamento=&video=&url=&evento=&fotos=&sessao=&lista=&perfil_longando=&login_=USER&senha_=123456&logar=Logar"); 
    echo grab_page("http://www.example.com/");?> 
    

     関連する問題

    • 関連する問題はありません^_^