tutorials.de-Buchverschenkaktion 08/2010
+ Auf Thema antworten
  1. #1
    Killi138 Killi138 ist offline Grünschnabel Killi138 hat eine blütenweiße Weste
    Registriert seit
    May 2005
    Beiträge
    3
    Hi,

    ich muss eine externe Seite (jobs.ch) auslesen. Um mit der Seitenblätterung der Seite klarzukommen, muss ich wohl oder übel ein paar Variablen per POST übergeben.
    Also bleibt mir nichts anderes übrig als fsockopen.
    Damit bekomme ich es aber nicht hin!

    Hier mein Code:

    PHP-Code:
        $fp fsockopen("www.jobs.ch"80$errno$errstr30);
        if (!
    $fp) {
            echo 
    "$errstr ($errno)<br />\n";
        } else {
            
    $data "berufsgruppe=2";
            
            
    $out "POST /suche.php HTTP/1.1\r\n";
            
    $out .= "Content-Length: ".strlen($data)."\r\n";
            
    $out .= "Host: www.jobs.ch\r\n";
            
    $out .= "Connection: Close\r\n\r\n";
        
            
    fwrite($fp$out);
            
    $content "";
            while (!
    feof($fp)) {
                
    $content .= fgets($fp128);
            }
            
    fclose($fp);
            
            
    $content str_replace("<""v"$content);
            echo 
    $content;
        } 
    Wenn ich berufsgruppe=2 weglasse, $data also einem Leerstring übergebe, bekomme ich eine Rückgabe der Seite. Mit berufsgruppe=2 gar nichts. Dann ist die Seite leer, was ja eigtl. nicht sein kann.
    Im Prinzip muss ich berufsgruppe und p=20 und page=20 übergeben, damit ich auf Seite 2 lande...

    Kann mir jemand helfen?

    Und ja, ich habe die Erlaubnis, die Seite auszulesen!

  2. PHP 5 / MySQL 5 Seminar (22 Stunden Video-Training)

    Preis: früher: 39,95€ - jetzt nur: 7,99€
    Innerhalb Deutschlands versandkostenfrei!

    PHP 5 / MySQL 5 Lernkurs – 22 Stunden Video-Training auf DVD
    - PHP-, MySQL- und PHPMyAdmin-Grundlagen
    - Datenbankprogrammierung, objektorientierte Programmierung
    - Geeignet für Windows XP und Windows Vista


    Hier geht es zum Angebot

    Über 1.000 weitere IT-Bücher zum Sonderpreis lieferbar!


  3. #2
    Killi138 Killi138 ist offline Grünschnabel Killi138 hat eine blütenweiße Weste
    Registriert seit
    May 2005
    Beiträge
    3
    Nun ja, ich habs nun mit cURL versucht...

    Hier der Code

    PHP-Code:
    class CURL {
                var 
    $callback false;
            
            function 
    setCallback($func_name) {
                
    $this->callback $func_name;
            }
            
            function 
    doRequest($method$url$vars) {
                
    $ch curl_init();
                
    curl_setopt($chCURLOPT_URL$url);
                
    curl_setopt($chCURLOPT_HEADER1);
                
    curl_setopt($chCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']);
                
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
                
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
                
    curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt');
                
    curl_setopt($chCURLOPT_COOKIEFILE'cookie.txt');
                if (
    $method == 'POST') {
                    
    curl_setopt($chCURLOPT_POST1);
                    
    curl_setopt($chCURLOPT_POSTFIELDS$vars);
                }
                
    $data curl_exec($ch);
                
    curl_close($ch);
                if (
    $data) {
                    if (
    $this->callback)
                    {
                        
    $callback $this->callback;
                        
    $this->callback false;
                        return 
    call_user_func($callback$data);
                    } else {
                        return 
    $data;
                    }
                } else {
                    return 
    curl_error($ch);
                }
            }
            
            function 
    get($url) {
                return 
    $this->doRequest('GET'$url'NULL');
            }
            
            function 
    post($url$vars) {
                return 
    $this->doRequest('POST'$url$vars);
            }
        }    
        
        
    $test = new CURL();
        
    $wurst $test->post("www.jobs.ch/suche.php"htmlentities("berufsgruppe=2&nav=1&p=20&page=20&target=&action="));
        
        
    var_dump($wurst); 
    Zumindest die Berufsgruppe wird übernommen, aber auf der 2ten Seite lande ich erst nicht...was habe ich hier übersehen? Wenn man in der Seitenblätterung durchklickt, wird die JS-Funktion view() aufgerufen.
    Und diese setzt lediglich die Variablen p, page und nav...mehr nicht :-/

    Zu hülf...

  4. #3
    Killi138 Killi138 ist offline Grünschnabel Killi138 hat eine blütenweiße Weste
    Registriert seit
    May 2005
    Beiträge
    3
    Ok, gut, vergesst es wie leicht man sich doch durch überlegen selbst helfen kann...

    Irgendwo in den Notes von de.php.net hab ich gelesen dass man die POST-Variablen html-korrekt übergeben muss...so ein Schmarrn!

    Dann wird ja aus berufsgruppe=2&page=20 --> berufsgruppe=2&amp;page20...

    Also htmlentities weg und es geht

    Danke für die Aufmerksamkeit, seht es als Tutorial an

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 12.12.07, 12:14
  2. Antworten: 1
    Letzter Beitrag: 09.08.06, 09:12
  3. Antworten: 6
    Letzter Beitrag: 03.02.05, 13:30
  4. Antworten: 4
    Letzter Beitrag: 22.12.04, 09:02

Lesezeichen

Lesezeichen