[PHP] StudiVZ Klasse via cURL !?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Smokers, 14. Juli 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 14. Juli 2009
    StudiVZ Klasse via cURL !?

    Also ich brauche zZ ein Script das auf StudiVZ oder ähnlichen Vz Seiten, ein paar Gruppen durch crawlt etc, und für mich jem gruschelt . alles son mist....

    Allerdings brauche ich dafür mal ne grundlegende Info.

    Wie kann ich per PHP Post Daten übersenden?
    GET is ja easy , indem ich einfach die URL manipuliere und aufrufe,
    aber wenn ich zB mich dort einloggen will, lese ich ja die formkeys aus, etc , den ganzen hidden kram, dann meinen benutzernamen kennst das script, das pw auch, und dann sende ich das ganze an secure.studivz.net/login etc.

    aber WIE sende ich den Spaß ? ^^°
    also allgemein wie senden ich POST daten an ein fremdes Script....


    lg
     

  2. Anzeige
    Dealz: stark reduzierte Angebote finden.
  3. #2 14. Juli 2009
    AW: POST Daten an fremdes Script senden

    Hey du alte Socke ^^

    Also ich würde dir empfehlen jenachdem entweder du verarbeitest das ganze mit fsockopen oder mit cURL. Google spuckt dir in dem Punkt massenweise sachen aus. Da ist eine erneute erklärung eigentlich nicht nötig. Bedenk nur, dass der Login über ssl geht.
     
  4. #3 14. Juli 2009
    AW: POST Daten an fremdes Script senden

    Die frage ist was du damit tun willst =)

    Was du vor hast dann kann man auch sagen obs funktioniert oder nicht greeZ
     
  5. #4 14. Juli 2009
    AW: POST Daten an fremdes Script senden

    naja da es um php geht..
    in der form als method=POST und bei action=Zieladresse

    kommt halt nur darauf an, ob das zielscript auch die nötige verarbeitung dazu hat.

    jo der rest ist wie beim get, nur dass man in der adresszeile nichts sieht.

    also zugriff auch per $getPost = $_POST[name];
     
  6. #5 14. Juli 2009
    AW: POST Daten an fremdes Script senden


    Das ich das mit fsockopen handlen muss, reicht mir schon fast.

    @freakZ: Ich will alle Gruppen in der ein Profil ist, durchcrawlen und die in den Gruppen vorhandenen Leute einmalig aufrufen, also das Profil, sodass man als letzter Besucher zu sehen ist ;-)


    also die eine Gruppe hab ich manuell gemacht, da warens nur 3 Seiten, als ich dann die andere Gruppe mit 10000 Leuten gesehen hab, bin ich von dem Gedanken ganz schnell abgekommen...

    Wenn ich was fertiges hab poste ich es hier mal =)


    Dank euch bzw hacker5.

    //@hacker5: "wenn ich nach php post absenden" gesucht habe bin ich immer auf idioten gekommen die nen html form an ihr script senden wollen -.-
     
  7. #6 14. Juli 2009
    AW: POST Daten an fremdes Script senden

    nimm curl, doku lesen -> seiten mit POST-anfragen bombardieren ;)
     
  8. #7 15. Juli 2009
    AW: POST Daten an fremdes Script senden

    Smokers,

    Kleiner Hinweis:
    Damit Du das nicht alles umsonst machst, solltest Du beachten,
    dass wenn du zuviele Profilaufrufe in einer kurzem Intervall tätigst,
    dir das Backend ein Riegel vorschiebt und du dich als »Human«
    mittels CAPTCHA-Eingabe "authentifizieren" musst.

    Also entweder musste eine Captcha-Scanner noch zusätzlich nutzen,
    der den Studi/mein/schüler-VZ Captcha lesen kann oder du musst
    das intervall auf 'ne benutzerübliche Zahl stellen.

    MArc
     
  9. #8 15. Juli 2009
    AW: POST Daten an fremdes Script senden

    oder als fertige php klasse ... http://m-software.de/snoopy.php ... dann brauchste den html header nich selber zusammenbauen
     
  10. #9 15. Juli 2009
    AW: POST Daten an fremdes Script senden

    Ich habs mit Snoopy nicht geschafft, mich soweit bei Studivz einzuloggen, dass ich auch weiter auf der Seite bleibe. Wenn das hier jemand gelöst hat, wär ich dankbar, wenn jemand das Script mal posten könnte, um zu sehen welche Fehler ich gemacht habe.



    @Smokers, wenn du es weiterhin mit fsocksopen probieren willst, schau mal hier das wäre ein beispiel:
    PHP:
    $host  "www.example.com" ;
    $uri   "/path/file.php?getVar=getValue&postVar=postValue" ;
    $usr   'user' ;
    $pwd   'pass' ;

    header ( "Content-type: text/plain" );
    $sock  fsockopen ( $host 80 $errno $errstr 5 );  // 80 = Port, 5 = Timeout
    fputs ( $sock "POST " . $uri . " HTTP/1.1\r\n" );
    fputs ( $sock "Host: " . $host . "\r\n" );
    fputs ( $sock "Authorization: Basic " . base64_encode ( $usr . ":" . $pwd ). "\r\n" );
    fputs ( $sock "Connection: close\r\n\r\n" );
    while(!
    feof ( $sock ))
    echo 
    fgets ( $sock 4096 );  // Antwort lesen
    fclose ( $sock );  
    und für weitere Informationen denk ich hilf die Doku dir am besten weiter.
     
  11. #10 15. Juli 2009
    AW: POST Daten an fremdes Script senden

    (session)cookies speichern und beim nächsten request mitsenden

    naja, curl macht das automatisch wenn man die entsprechende option setzt, aber okay viel spaß mit mit den langsameren sockets ^^
     
  12. #11 15. Juli 2009
    AW: POST Daten an fremdes Script senden

    Du weißt aber schon das der Einloggvorgang mit SSL verschlüsselt ist?
    Ich habe schon ähnliches versucht bin aber auch nicht weitergekommen, habe auch gemerkt das Snoopy da deutlich die falsche Wahl war :).
     
  13. #12 15. Juli 2009
    AW: POST Daten an fremdes Script senden


    Also im Edelprofil ist es nicht so.
    Da ich es primär für ein solches mache, lasse ich das erstmal außer acht,....
    aber da gibt es doch dann sicherlich auch erweiterungen oder PHP Klassen die sonen Capctah regeln oder o_O?^^°
     
  14. #13 16. Juli 2009
    AW: POST Daten an fremdes Script senden

    --> Soweit ich weis kann man mit cURL ssl zertifikate annehmen...korrigiert mich wenn ich das zu einfach sehe...


    Soweit bin ich heute noch gekommen ....

    vltl kann mir jem unter die Arme greifen, der Login scheint nicht zu funzen, vllt nutz ich auch curl flashc,.. ka.

    Wäre cool wenn mal jem drüberschaut, kann man ja auch ne gemeinschaftssache draus machen....

    PHP:
    <? php 

    class  VZ  {
        private 
    $username ;
        private 
    $password ;
        private 
    $vz ;
        private 
    $mainurl ;
        private 
    $loginurl ;
        private 
    $cURL ;
        private 
    $formkey ;
        private 
    $iv ;
        private 
    $useragent ;
        
        public function 
    __construct ( $vztype , $username , $password ) {
            
    $this -> username  $username ;
            
    $this -> password  $password ;
            switch(
    $vztype ){
                case 
    'studivz'          $this -> vz  $vztype ; break;
                case 
    'schuelervz'     $this -> vz  $vztype ; break;
                case 
    'meinvz'         $this -> vz  $vztype ; break;
                default                : break;
            }
            if(
    $this -> vz  ==  '' ){
                echo 
    'Unbekannter VZ-Dienst' ;
                exit();
            }
            else {
                switch(
    $this -> vz ){
                    case 
    'studivz'         $this -> loginurl  'https://secure.studivz.net/Login' $this -> mainurl  'http://www.studivz.net' ; break;
                    case 
    'schuelervz'     $this -> loginurl  'https://secure.schuelervz.net/Login' $this -> mainurl  'http://www.schuelervz.net' ; break;
                    case 
    'meinvz'         $this -> loginurl  'https://secure.meinvz.net/Login' $this -> mainurl  'http://www.meinvz.net' ; break;
                    default                : break;
                }
                
    $this -> cURL  curl_init ();
            }
        }
        
        public function 
    do_login () {
            
    $this -> get_vars ();
            
    curl_setopt ( $this -> cURL , CURLOPT_URL , $this -> loginurl );
            
    curl_setopt ( $this -> cURL CURLOPT_POST 1 );
            
    curl_setopt ( $this -> cURL CURLOPT_POSTFIELDS , 'email=' . $this -> username . '&password=' . $this -> password . '$reminder=1&login=Einloggen&jsEnabled=false' );
            
    $return = curl_exec ( $this -> cURL );
            echo 
    var_dump ( $return );    
        }
        public function 
    set_useragent ( $useragent ) {
            
    $this -> useragent  $useragent ;
        }
        public function 
    get_vars () {
            
    $this -> prepare_curl ();
            
    curl_setopt ( $this -> cURL , CURLOPT_URL , $this -> mainurl );
            
    $page  curl_exec ( $this -> cURL );
            
    preg_match ( "/\"formkey\".*?value=\"([^\"]*?)\"/" $page $formkey );
            
    preg_match ( "/\"iv\".*?value=\"([^\"]*?)\"/" $page $iv );
            
    $this -> formkey  $formkey [ 1 ];
            
    $this -> iv  $iv [ 1 ];
                    
            

        
    }
        
        private function 
    prepare_curl (){
            
    curl_setopt ( $this -> cURL , CURLOPT_FAILONERROR , 1 );
            
    curl_setopt ( $this -> cURL , CURLOPT_RETURNTRANSFER , true );
            
    curl_setopt ( $this -> cURL , CURLOPT_TIMEOUT 15 );
            
    curl_setopt ( $this -> cURL , CURLOPT_FOLLOWLOCATION 1 );
            
    curl_setopt ( $this -> cURL , CURLOPT_CURLOPT_COOKIEJAR "cookie.txt" );
            
    curl_setopt ( $this -> cURL , CURLOPT_CURLOPT_COOKIEFILE "cookie.txt" );
            
    curl_setopt ( $this -> cURL , CURLOPT_USERAGENT , $this -> useragent );
            
    curl_setopt  ( $this -> cURL CURLOPT_SSL_VERIFYHOST 0 );
            
    curl_setopt  ( $this -> cURL CURLOPT_SSL_VERIFYPEER 0 );
        }
        
    }


    $curl  = new  VZ ( 'meinvz' , 'XXXXX' , 'XXXXXX' );
    $curl -> do_login ();


    ?>
     
  15. #14 16. Juli 2009
    AW: StudiVZ Klasse via cURL !?

    Für den Einloggvorgang brauchst du soweit ich mich erinnern kann den Formkey, haste aber schon ausgelesen wie ich sehe.

    Ja mit cURL kannst du SSL zertifikate annehmen aber nicht mit Snoopy was du ja vorhattest :D.

    Schau dir das hier mal an, so soll es auch gehen zum einloggen:

    PHP:
    <? php

    $svz_addy 
    "" ;
    $svz_pass  "" ;

    $formdata  file_get_contents ( 'http://www.schuelervz.net/Default' );

    $pattern  '@<input type="hidden" name="(.*)" value="(.*)" />@isU' ;

    $result  preg_match_all ( $pattern $formdata $ergebnis );

    unset(
    $formdata );  // unnötig benutzten RAM wieder freigeben

    $formkey  $ergebnis [ 2 ][ 1 ]; 
    $iv  $ergebnis [ 2 ][ 2 ];
    $checkcode  $ergebnis [ 2 ][ 3 ];  // eigl unnötig, aber viell mal für andere Scripte oder später brauchbar



    $fp  fsockopen ( 'ssl://secure.schuelervz.net' 443 $errno $errstr 5 );

    if(!
    $fp )
    {
        exit(
    '<h1>SVZ Server Offline oder zu lahm >_></h1>' );
    }

    $postdata  = array( 'email'  =>  $svz_addy ,
                      
    'password'  =>  $svz_pass ,
                      
    'login'  =>  'Einloggen' ,
                      
    'jsEnabled'  =>  'true' ,
                      
    'formkey'  =>  $formkey ,
                      
    'iv'  =>  $iv ,
                      
    'checkcode'  =>  $checkcode ); 

    $post  '' ;

    foreach(
    $postdata  as  $key  =>  $value )
    {
        
    $post  .=  $key  '='  urlencode ( $value ) .  '&' ;
    }

    unset(
    $postdata );  // unnötiges unsetten

    $post  substr ( $post , - 1 1 );  // Entfernen wir das letzte Ã¼berflüssige &

    $lenght  strlen ( $post );

    $send   'POST /Login HTTP/1.1'  "\r\n" ;
    $send  .=  'Host: secure.schuelervz.net'  "\r\n" ;
    $send  .=  'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3'  "\r\n" ;
    $send  .=  'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'  "\r\n" ;
    $send  .=  'Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3'  "\r\n" ;
    $send  .=  'Accept-Encoding: deflate'  "\r\n" ;
    $send  .=  'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7'  "\r\n" ;
    $send  .=  'Keep-Alive: 300'  "\r\n" ;
    $send  .=  'Connection: keep-alive'  "\r\n" ;
    $send  .=  'Referer: http://www.schuelervz.net/Default'  "\r\n" ;
    //$send .= 'Cookie: PHPSESSID=' . "\r\n"; Unnötig
    $send  .=  'Content-Type: application/x-www-form-urlencoded'  "\r\n" ;
    $send  .=  'Content-Length:  '  $lenght  "\r\n\r\n" ;
    $send  .=  $post ;

    fputs ( $fp $send );

    $antwort  '' ;
    while(!
    feof ( $fp ))
    {
        
    $antwort  .=  fgets ( $fp , 8192 );
    }

    //$antwort = parseHttpResponse($antwort);

    $antwort  explode ( "\r\n\r\n" $antwort );
    print_r ( $antwort [ 0 ]);
    unset(
    $antwort [ 0 ]);

       



    //$antwort = implode("\r\n\r\n", $antwort);

    //file_put_contents('fgfg.gz', $antwort);

    //$path = "fgfg.gz";

    //$zd = gzopen($path, "r");
    //$contents = gzread($zd, filesize($path));
    //gzclose($zd);

    //echo aa_decode_body($antwort, true, true);


    // Das da oben ^^^^ könnte man auch mit weniger von den $send .= ' machen, aber ich machs lieber so

    ?>
     
  16. #15 16. Juli 2009
    AW: StudiVZ Klasse via cURL !?

    Die Frage ist ob ich mit der Lösung die Session halten kann, denn von cockie oder Sessionverwaltung sehe ich da nicht so viel....

    also mit cURL wäre e smir jetzt wesentlich lieber, schließlich habe ich damit nagefangen ^^°
    wenn die Lösung hier über mir auch mit Sessions und den cockies funzt wäre curl überflüssig xD

    und wo der checkcode herkommt weis ich noch nicht o_O


    und gleich als nächste frage: ist es schlauer oder unaufälliger wenn ich den header selber schreibe und sende, oder das komplett von cURL machen lasse?
     
  17. #16 16. Juli 2009
    AW: StudiVZ Klasse via cURL !?

    naja du müssest nurmal in die doku schaun, weil dann wüsstest du, dass man mit curl ebenso eigene header mit in den request aufnehmen kann.

    http://de3.php.net/curl_setopt

    nicht böse gemeint, aber naja du weißt scho ^^
     
  18. #17 16. Juli 2009
    AW: StudiVZ Klasse via cURL !?

    Jo das weis ich, die Frage ist aber eher, was is das schlauere, was fällt studivz am wenigsten auf bzw wird als Bot oder Script erkannt.....


    Aber wie gesagt das is erstmal ganz was anderes,... erstmal wüsste ich doch schon ganz gern was an meinem cURL login nicht klappt ^^°?oder ob ich einen denkfehler in der benutzung von cURL habe, denn laut einschlägiger tutorials etc soltle es eigentlich so ablaufen.
     
  19. #18 17. Juli 2009
    AW: StudiVZ Klasse via cURL !?

    Nimms einfach mit auf... Ist schneller getan als die Frage hier zu stellen..^^
    http://www.useragent.org
     
  20. #19 19. Juli 2009
    AW: StudiVZ Klasse via cURL !?

    Okay , folgender Status Quo:

    PHP:
    <? php 

    class  VZ  {
        private 
    $username ;
        private 
    $password ;
        private 
    $vz ;
        private 
    $mainurl ;
        private 
    $loginurl ;
        private 
    $cURL ;
        private 
    $formkey ;
        private 
    $iv ;
        private 
    $useragent  = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ;
        
        public function 
    __construct ( $vztype , $username , $password ) {
            
    $this -> username  $username ;
            
    $this -> password  $password ;
            switch(
    $vztype ){
                case 
    'studivz'          $this -> vz  $vztype ; break;
                case 
    'schuelervz'     $this -> vz  $vztype ; break;
                case 
    'meinvz'         $this -> vz  $vztype ; break;
                default                : break;
            }
            if(
    $this -> vz  ==  '' ){
                echo 
    'Unbekannter VZ-Dienst' ;
                exit();
            }
            else {
                switch(
    $this -> vz ){
                    case 
    'studivz'         $this -> loginurl  'https://secure.studivz.net/Login' $this -> mainurl  'http://www.studivz.net' ; break;
                    case 
    'schuelervz'     $this -> loginurl  'https://secure.schuelervz.net/Login' $this -> mainurl  'http://www.schuelervz.net' ; break;
                    case 
    'meinvz'         $this -> loginurl  'https://secure.meinvz.net/Login' $this -> mainurl  'http://www.meinvz.net' ; break;
                    default                : break;
                }
                
    $this -> cURL  curl_init ();
            }
        }
        
        public function 
    do_login () {
            
    $this -> get_vars ();
            
    curl_setopt ( $this -> cURL , CURLOPT_URL , $this -> loginurl );
            
    curl_setopt ( $this -> cURL CURLOPT_POST 1 );
            
    curl_setopt ( $this -> cURL , CURLOPT_REFERER , $this -> mainurl );
                    
                    
            
    $postvars  = array(
                                
    'iv' => $this -> iv ,
                                
    'formkey' => $this -> formkey ,
                                
    'email' => $this -> username ,
                                
    'password' => $this -> password ,
                                
    'reminder' => 1 ,
                                
    'login' => 'Einloggen' ,
                                
    'jsEnabled' => 'false' ,
            );        
            
            
    curl_setopt ( $this -> cURL CURLOPT_POSTFIELDS , http_build_query ( $postvars ));
            
    $return = curl_exec ( $this -> cURL );
            echo 
    var_dump ( curl_getinfo ( $this -> cURL ));
            echo 
    var_dump ( $return );    
            
            echo 
    curl_getinfo ( $this -> cURL , CURLINFO_HTTP_CODE ); 
        }
        public function 
    set_useragent ( $useragent ) {
            
    $this -> useragent  $useragent ;
        }
        public function 
    get_vars () {
            
    $this -> prepare_curl ();
            
    curl_setopt ( $this -> cURL , CURLOPT_URL , $this -> mainurl );
            
    $page  curl_exec ( $this -> cURL );
            
    preg_match ( "/\"formkey\".*?value=\"([^\"]*?)\"/" $page $formkey );
            
    preg_match ( "/\"iv\".*?value=\"([^\"]*?)\"/" $page $iv );
            
    $this -> formkey  $formkey [ 1 ];
            
    $this -> iv  $iv [ 1 ];
                    
            

        
    }
        
        private function 
    prepare_curl (){
            
    curl_setopt ( $this -> cURL , CURLOPT_FAILONERROR , 1 );
            
    curl_setopt ( $this -> cURL , CURLOPT_RETURNTRANSFER , true );
            
    curl_setopt ( $this -> cURL , CURLOPT_TIMEOUT 15 );
            
    curl_setopt ( $this -> cURL , CURLOPT_FOLLOWLOCATION 1 );
            
    curl_setopt ( $this -> cURL , CURLOPT_CURLOPT_COOKIEJAR "cookie.txt" );
            
    curl_setopt ( $this -> cURL , CURLOPT_CURLOPT_COOKIEFILE "cookie.txt" );
            
    curl_setopt ( $this -> cURL , CURLOPT_USERAGENT , $this -> useragent );
            
    curl_setopt  ( $this -> cURL CURLOPT_SSL_VERIFYHOST 0 );
            
    curl_setopt  ( $this -> cURL CURLOPT_SSL_VERIFYPEER 0 );
            
    curl_setopt  ( $this -> cURL , CURLOPT_AUTOREFERER , true );
        }
        public function 
    gruscheln ( $profileID ) {
            
        }
        public function 
    sendMessage ( $profileID , $message ) {
            
        }
        public function 
    postGuestbook ( $profileID , $message ) {
            
        }
        public function 
    addFriend ( $profileID ) {
            
        }
        public function 
    deleteFriend ( $profileID ){
            
        }
        public function 
    joinGroup ( $groupID ) {
            
        }
        public function 
    leaveGroup ( $groupID ){
            
        }
        public function 
    setStatus ( $message ){
            
        }
        
    }


    $curl  = new  VZ ( 'meinvz' , 'XXXXXXX@gmx.de' , 'XXXXXXX' );
    $curl -> do_login ();


    ?>
    Ich weis das mein Login halbwegs geht, ich werde wieder zurück geleitet zu studivz.net/default

    Allerdings ohne das der Login wirklich funktioniert hat, nehme ich den auto rederect raus und rufe im script dannach manuell die hauptseite auf, bekomme ich den fehler :"Es ist ein Fehler unterlaufen , bitte versuchen sie es später nochmal erneut"

    also an username & pw kanns nichmehr liegen, formkey übergebe ich ,... iv -key, useragent,... ka worans liegt...

    murdoc? help ^^°
     
  21. #20 20. Juli 2009
    AW: StudiVZ Klasse via cURL !?

    naja, dazu müsste man mal die header sniffen wenn man sich einloggt, dann kann man mit curl das ganze 1:1 nachbaun.

    leider hab ich keinen account bei dem vz-schmarn und kann deswegen auch nix sniffen :p

    am besten du lässt mal live-http-header mitlaufen und schaust was am ende alles übergeben wird.
     
  22. #21 20. Juli 2009
    AW: StudiVZ Klasse via cURL !?

    Also der Header stimmt soweit eigentlich. Aber wenn man sich das mal anschaut. Vllt liegt es am Cookie mit der PHPSESSID? Das sieht stark danach aus, dass der Abgelaufen ist.

    Spoiler
    HTTP/1.1 302 Found Date: Mon, 20 Jul 2009 12:43:26 GMT Server: Apache Set-Cookie: PHPSESSID=256a87851b5beb7914687d752a94f2d331837d5b; path=/; domain=.schuelervz.net; HttpOnly Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache

    Wenn der Abgelaufen ist, kann das ja nicht klappen. Theoretisch
     
  23. #22 20. Juli 2009
    AW: StudiVZ Klasse via cURL !?

    @ murdoc oder wer ihn will ...
    es gibt nen testlogin für MEINVZ :


    User : "rr_smokers@gmx.de"

    Password : "12345asdfg"


    also wers testen will und keinen acc besitzt.
    ich komme nach wie vor nicht weiter ... :- /
    es wird allerdings auch keine cookie.txt oder Ähnliches erstellt. ka echt null plan, soweit bin ich dann in cURL nich drin, und meiner meinung nach sieht alles richtig aus ... :(
     
  24. #23 20. Juli 2009
    AW: StudiVZ Klasse via cURL !?

    Hi,
    habe zwar auch nich wirklich Ahnung von cURL aber habe eben grad nen PHP Snippet gefunden mit dem man in Facebook seinen Status ändern kann.. Vllt gibts da Ansätze oder so die dir weiter helfen..

    PHP:
    <? PHP


    $status  'YOUR_STATUS' ;
    $first_name  'YOUR_FIRST_NAME' ;
    $login_email  'YOUR_LOGIN_EMAIL' ;
    $login_pass  'YOUR_PASSWORD' ;

    $ch  curl_init ();
    curl_setopt ( $ch CURLOPT_URL 'https://login.facebook.com/login.php?m&amp;next=http%3A%2F%2Fm.facebook.com%2Fhome.php' );
    curl_setopt ( $ch CURLOPT_POSTFIELDS , 'email=' . urlencode ( $login_email ). '&pass=' . urlencode ( $login_pass ). '&login=Login' );
    curl_setopt ( $ch CURLOPT_POST 1 );
    curl_setopt ( $ch CURLOPT_HEADER 0 );
    curl_setopt ( $ch CURLOPT_FOLLOWLOCATION 1 );
    curl_setopt ( $ch CURLOPT_SSL_VERIFYPEER false );
    curl_setopt ( $ch CURLOPT_COOKIEJAR "my_cookies.txt" );
    curl_setopt ( $ch CURLOPT_COOKIEFILE "my_cookies.txt" );
    curl_setopt ( $ch CURLOPT_RETURNTRANSFER 1 );
    curl_setopt ( $ch CURLOPT_USERAGENT "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3" );
    curl_exec ( $ch );

    curl_setopt ( $ch CURLOPT_POST 0 );
    curl_setopt ( $ch CURLOPT_URL 'http://m.facebook.com/home.php' );
    $page  curl_exec ( $ch );

    curl_setopt ( $ch CURLOPT_POST 1 );
    preg_match ( '/name="post_form_id" value="(.*)" \/>' . ucfirst ( $first_name ). '/' $page $form_id );
    curl_setopt ( $ch CURLOPT_POSTFIELDS , 'post_form_id=' . $form_id [ 1 ]. '&status=' . urlencode ( $status ). '&update=Update' );
    curl_setopt ( $ch CURLOPT_URL 'http://m.facebook.com/home.php' );
    curl_exec ( $ch );
    ?>
     
  25. #24 20. Juli 2009
    AW: StudiVZ Klasse via cURL !?

    Hab auch mal eins geschrieben... Man kann sich bei MeinVZ einloggen. Hab jetzt bei den vielen Posts nicht ganz kapiert was du (noch) genau machen willst.

    PHP:
    <? php
    error_reporting
    ( E_ALL  E_STRICT );
    abstract class 
    VZLogin
    {
        const 
    USERAGENT  'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 (.NET CLR 3.5.30729)' ;
        
        protected 
    $user ;
        protected 
    $password ;
        
        abstract public function 
    __construct ( $user $password );
        
        protected function 
    createCurlHandle ( $url $cookie  = - 1 $referer  = - 1 )
        {
            
    $curl  curl_init ();
            
    curl_setopt ( $curl CURLOPT_URL ,         $url );
            
    curl_setopt ( $curl CURLOPT_USERAGENT ,     self :: USERAGENT );
            
    $cookie     !== - curl_setopt ( $curl CURLOPT_COOKIE ,     $cookie ) :  '' ;
            
    $referer     !== - curl_setopt ( $curl CURLOPT_REFERER ,     $referer ) :  '' ;
            
    curl_setopt ( $curl CURLOPT_ENCODING ,     'gzip,deflate' );
            
    curl_setopt ( $curl CURLOPT_HTTPHEADER ,     $this -> getHttpHeaders ());
            
    curl_setopt ( $curl CURLOPT_FOLLOWLOCATION , true );
            
    curl_setopt ( $curl CURLOPT_RETURNTRANSFER , true );
            
            if(
    strpos ( $url 'https://' ) !==  false )
            {
                
    curl_setopt ( $curl CURLOPT_SSL_VERIFYPEER false );
                
    curl_setopt ( $curl CURLOPT_SSL_VERIFYHOST false );
            }
            
            return 
    $curl ;
        }
        
        private function 
    getHttpHeaders ()
        {
            return array(
                
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' ,
                
    'Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3' ,
                
    'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' ,
                
    'Keep-Alive: 300' ,
                
    'Connection: keep-alive'
            
    );
        }
    }

    class 
    MeinVZ  extends  VZLogin
    {
        const 
    START         'http://www.meinvz.net' ;
        const 
    ACTION     'https://secure.meinvz.net/Login' ;
        const 
    COOKIE     'meinvz.cookie.txt' ;
        
        public function 
    __construct ( $user $password )
        {
            
    $this -> user         $user ;
            
    $this -> password     $password ;
        }
        
        public function 
    login ()
        {
            
    preg_match ( '^"([0-9a-f]{192})"^' file_get_contents ( 'http://www.meinvz.net' ),  $formkey )    or die( 'Couldn\'t grep formkey' );
            
    preg_match ( '^"([0-9a-f]{32})"^' file_get_contents ( 'http://www.meinvz.net' ),  $iv )        or die( 'Couldn\'t grep iv' );
            
            
    $curl  $this -> createCurlHandle ( self :: ACTION );
            
    curl_setopt ( $curl CURLOPT_POST ,         true );
            
    curl_setopt ( $curl CURLOPT_POSTFIELDS ,     'email='  urlencode ( $this -> user ) .  '&password='  urlencode ( $this -> password ) .  '&login=Einloggen&jsEnabled=false&formkey='  $formkey [ 1 ] .  '&iv='  $iv [ 1 ]);
            
    curl_setopt ( $curl CURLOPT_COOKIEJAR ,     dirname ( __FILE__ ) .  DIRECTORY_SEPARATOR  self :: COOKIE );
            
            
    $ret  curl_exec ( $curl );
            
    curl_close ( $curl );
            
             return 
    $ret ;
        }
    }

    $lal  = new  MeinVZ ( 'rr_smokers@gmx.de' '12345asdfg' );
    $response  $lal -> login ();

    preg_match ( '^Hallo ([A-Za-z0-9 ]*)</h2>^' $response $name );

    echo 
    "Hallo "  $name [ 1 ];
    ?>
     
  26. #25 24. Juli 2009
    AW: StudiVZ Klasse via cURL !?

    Dank euch allen mal ^^
    auch danke für die fertige Lösung von Coksnuss, eigentlich wollte icha ber nur wissen was bei meiner version nicht funktioniert hat ^^ bzw warum....

    ich mach trotzdem erstmal zu denn ...
    ich versuch trotzdem mal noch meine version da zum laufen zu bekommen, auch wenn ich nach wie vor nich weis was daran falsch is... o_O

    =)
     

  27. Videos zum Thema
Die Seite wird geladen...
Similar Threads - PHP StudiVZ Klasse
  1. Antworten:
    0
    Aufrufe:
    2.101
  2. Antworten:
    0
    Aufrufe:
    3.243
  3. Antworten:
    4
    Aufrufe:
    6.177
  4. Antworten:
    5
    Aufrufe:
    15.208
  5. Gute PHP Template Engine

    Yuesang , 20. Februar 2017 , im Forum: Webentwicklung
    Antworten:
    4
    Aufrufe:
    5.459
  • Annonce

  • Annonce