Ergebnis 1 bis 9 von 9

Thema: [PHP] Text von seite auslesen und bei Änderung benachrichtigen

  1. #1

    [PHP] Text von seite auslesen und bei Änderung benachrichtigen

    Moinsen, ich bin nicht der Master of Desaster in PHP, n bissl kann ich aber. nun meine frage, da ich nicht genau wüsste wonach ich suchen müsste und ob das möglich ist

    Ich habe eine seite mit Inhalt, die Seite ist php und beinhaltet text und bilder, es ist eine art newsfeed

    man muss aber auf der seite eingloggt sein um diesen feed lesen zu können.

    gibt es eine PHP funktion mit der ich diesen Feed lesen kann und der mir dann via mail() funktion eine mail schickt wenn sich an der seite was ändert, also ein neuer feed kommt??

  2. #2
    N.A.C.J.A.C. Avatar von alter_Bekannter
    Registriert seit
    Jul 2013
    Ort
    Midgard
    Beiträge
    4.244

    Re: [PHP] Text von seite auslesen und bei Änderung benachrichtigen

    curl(), wenn du deinen Login cookie dahin schickst sollte das üblicherweise reichen.
    Für diesen Beitrag bedankt sich venom2k6
    Wichtig: Warum die Installation von Win XP ein Linuxproblem ist.

    Autos töten keine Menschen, sie beschützen sie, vor Menschen mit kleineren Autos.

  3. #3
    Mitglied

    (Threadstarter)

    Avatar von venom2k6
    Registriert seit
    Jul 2013
    Beiträge
    78

    Re: [PHP] Text von seite auslesen und bei Änderung benachrichtigen

    Ich danke dir. Werde ich mir mal durchlesen und probieren und bei Verständnissproblemen mich hier melden

    EDIT

    Code (PHP):
    1.  
    2.         //username and password of account
    3.         $username = trim($values["BENUTZERNAME"]);
    4.         $password = trim($values["PASSWORT123"]);
    5.  
    6.         //set the directory for the cookie using defined document root var
    7.         $path = "/ctemp";
    8.         //build a unique path with every request to store. the info per user with custom func. I used this function to build unique paths based on member ID, that was for my use case. It can be a regular dir.
    9.         //$path = build_unique_path($path); // this was for my use case
    10.  
    11.         //login form action url
    12.         $url="https://beispielseite.de/";
    13.         $postinfo = "user=".$username."&password=".$password;
    14.  
    15.         $cookie_file_path = $path."/cookie.txt";
    16.  
    17.         $ch = curl_init();
    18.         curl_setopt($ch, CURLOPT_HEADER, false);
    19.         curl_setopt($ch, CURLOPT_NOBODY, false);
    20.         curl_setopt($ch, CURLOPT_URL, $url);
    21.         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    22.  
    23.         curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
    24.         //set the cookie the site has for certain features, this is optional
    25.         curl_setopt($ch, CURLOPT_COOKIE, "cookiename=0");
    26.         curl_setopt($ch, CURLOPT_USERAGENT,
    27.             "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36");
    28.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    29.         curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']);
    30.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    31.         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
    32.  
    33.         curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    34.         curl_setopt($ch, CURLOPT_POST, 1);
    35.         curl_setopt($ch, CURLOPT_POSTFIELDS, $postinfo);
    36.         curl_exec($ch);
    37.  
    38.         //page with the content I want to grab
    39.         curl_setopt($ch, CURLOPT_URL, "https://beispielseite.de/sichtbar/nur/wenn/eingeloggt/");
    40.         //do stuff with the info with DomDocument() etc
    41.         $html = curl_exec($ch);
    42.         curl_close($ch);
    43.  
    44.         ?>
    45.  
    hab mich jetzt erstmal durchgeklickt und nach fertigen lösungen gesucht, aber irgendwie wird immer immer eine leere seite angezeigt
    wenn ich allerdings die seite so aufrufe, bekomme ich immerhin die loginseite angzeigt
    Code (PHP):
    1.  
    2. <?php
    3.        
    4.         //step1
    5.         $cSession = curl_init();
    6.         //step2
    7.         curl_setopt($cSession,CURLOPT_URL,"https://beispielseite.de/");
    8.         curl_setopt($cSession,CURLOPT_RETURNTRANSFER,true);
    9.         curl_setopt($cSession,CURLOPT_HEADER, false);
    10.         //step3
    11.         $result=curl_exec($cSession);
    12.         //step4
    13.         curl_close($cSession);
    14.         //step5
    15.         echo $result;
    16.        
    17.         ?>
    18.  
    kannst und würdest du mir erklären warum das obige script nichtmal die seite anzeigen kann im vergleich zu der kurzen form ohne login?
    Geändert von venom2k6 (22.01.19 um 12:06 Uhr)

  4. #4
    N.A.C.J.A.C. Avatar von alter_Bekannter
    Registriert seit
    Jul 2013
    Ort
    Midgard
    Beiträge
    4.244

    Re: [PHP] Text von seite auslesen und bei Änderung benachrichtigen

    Disclaimer:
    Ich habe noch nicht viel mit curl gemacht und das letzte mal ist über 1 Jahr her.

    Gibt curl dir irgendwelche return/error-codes?
    Wenn das Minmalbeispiel eine Seite zurückgibt dann sperrt dich vermutlich zumindest keine Botdetection aus.
    Wichtig: Warum die Installation von Win XP ein Linuxproblem ist.

    Autos töten keine Menschen, sie beschützen sie, vor Menschen mit kleineren Autos.

  5. #5
    Mitglied

    (Threadstarter)

    Avatar von venom2k6
    Registriert seit
    Jul 2013
    Beiträge
    78

    Re: [PHP] Text von seite auslesen und bei Änderung benachrichtigen

    Das minimalbeispiel funktioniert Tadellos, nur das ich halt eine blanke seite ohne grafische elemente angezeigt bekomme. dies wäre mir egal, mir ging es sowieso nur um den textartigen inhalt

    das längere beispiel erzeugt nur eine leere weiße seite, wenn cih alerindgs irgendwo plaintext hinzufüge wird dieser auch angezeigt, also ein fehler gibt es demnach nicht.

    Thema cookie. ich vermute das es am pfad der cookies liegt... muss hier vielleicht der pfad zu den cookies vom chrome browser hin mit den namen des zuständigen cookies der seite auf der ich mich einloggen will um den newsfeed zu lesen?

  6. #6
    N.A.C.J.A.C. Avatar von alter_Bekannter
    Registriert seit
    Jul 2013
    Ort
    Midgard
    Beiträge
    4.244

    Re: [PHP] Text von seite auslesen und bei Änderung benachrichtigen

    Ich sehe gerade das du im minimal returntransfer als true setzt und im anderen als 1.

    Und versuch das:
    https://curl.haxx.se/libcurl/c/libcurl-errors.html
    mal.
    Für diesen Beitrag bedankt sich venom2k6
    Wichtig: Warum die Installation von Win XP ein Linuxproblem ist.

    Autos töten keine Menschen, sie beschützen sie, vor Menschen mit kleineren Autos.

  7. #7
    Mitglied
    Registriert seit
    Jul 2013
    Beiträge
    331
    ngb:news Artikel
    1

    Re: [PHP] Text von seite auslesen und bei Änderung benachrichtigen

    Meiner Erfahrung nach war curl immer unglaublich eklig zu programmieren, gerade wenn man mehr absetzen muss als eine einzelne simple Anfrage. Wenn du dir das Leben einfacher machen willst, nimm sowas wie "Requests for PHP" (http://requests.ryanmccue.info, Manual). Gibt's open source auf Github.

    Ohne mir jetzt dein Beispiel genauer angesehen zu haben würde ich mit sowas anfangen (simpel und verständlich):
    Code (PHP):
    1. // Neue Session für deine Seite
    2. $session = new Requests_Session('https://beispiel.de/');
    3. $session->useragent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36';
    4.  
    5. // Login
    6. $response = $session->post('/login', ['user' => '...', 'password' => '...']);
    7. // hier checken ob der Login erfolgreich war. $response->status_code und $response->body könnten helfen.
    8.  
    9. // Deine Seite abrufen (Cookies etc. passiert automatisch)
    10. $response = $session->get('/sichtbar/nur/wenn/eingeloggt/');
    11. echo $response->body;
    12.  
    Für diesen Beitrag bedankt sich venom2k6

  8. #8
    Mitglied

    (Threadstarter)

    Avatar von venom2k6
    Registriert seit
    Jul 2013
    Beiträge
    78

    Re: [PHP] Text von seite auslesen und bei Änderung benachrichtigen

    Ich bedanke mich für eure Hilfen, scheinbar will nichts funktionieren... ich vermute mal das der Provider da etwas unterbindet, denn fehler bekomme ich keine angezeigt

  9. #9
    N.A.C.J.A.C. Avatar von alter_Bekannter
    Registriert seit
    Jul 2013
    Ort
    Midgard
    Beiträge
    4.244

    Re: [PHP] Text von seite auslesen und bei Änderung benachrichtigen

    Hast du das mal gegen deinen eigenen Server getestet ob alles so ankommt wie du das willst?
    Mach duir dazu einfach mal ein Testscript das alles über print_r() ausgibt was der Client so übermittelt.


    Aber klar, client validierung über Javascript oÄ Scherze gibts durchaus und das nach zu basteln könnte echt aufwändig werden.

    Was ist denn der http status code des Requests? Den musst du doch zumindest bekommen oder gibts ein timeout?
    Wichtig: Warum die Installation von Win XP ein Linuxproblem ist.

    Autos töten keine Menschen, sie beschützen sie, vor Menschen mit kleineren Autos.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •