PHP Curl Login und das abrufen von Daten
Ich versuche, eine php-app, mit der sich anmeldet, Comcast hier
https://login.comcast.net/login
und laden Sie eine Datei
http://xfinity.comcast.net/
Erinnerung an das cookie.
Dies ist, was ich habe, so weit:
<?php
$username="username";
$password="password";
$url="https://login.comcast.net/login";
$cookie="cookie.txt";
$postdata = "user=".$username."&passwd=".$password."&rm=2&deviceAuthn=false&forceAuthn=true&s=ccentral-cima&r=comcast.net&continue=http://xfinity.comcast.net/";
$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, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
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);
echo $result;
curl_close($ch);
file_put_contents("page.txt",$ch);
echo $cookie;
?>
Was dieses Skript tut, ist einfach nur einloggen, und zeigen Sie mir
https://customer.comcast.com/Public/Home.aspx
als ich eingeloggt war, und dann, wenn ich drücken Sie E-Mail zum Beispiel ist es einfach behandelt mich wie ich noch nie angemeldet und bat mich Benutzername und Passwort. Alles was ich will ist, zu Holen die Anzahl der E-Mails durch die Einsparung http://xfinity.comcast.net/ (mit einem cookie), um page.txt
Kann dies möglich sein?
- Ich bin verwirrt ein wenig: zuerst Holen Sie sich das login-cookie in cookie.txt von LOCKE, dann Sie versuchen, öffnen Sie die Seite, du hast im browser, in der Hoffnung, dass es für das cookie cookie.txt?
- Haben Sie versucht, mit dem
CURLOPT_AUTOREFERER
undCURLOPT_REFERER
Optionen? - du hast Recht raina77ow, Sie haben einen Punkt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sicher, dass
CURLOPT_COOKIEFILE
. Jar ist was ist geschrieben, Datei wird gesendet zum server.Auch, wenn Sie wollen, zu tun, sowohl in einer Anforderung, müssen Sie die Abfrage der server zweimal. Einmal einloggen (mit
CURLOPT_COOKIEJAR
) und der zweiten Zeit an, um den eigentlichen Inhalt (mitCURLOPT_COOKIEFILE
).Darüber hinaus gibt es keine Notwendigkeit, um
CURLOPT_FOLLOWLOCATION
zufalse
wie die Anmeldung für die in der Regel nicht umleiten. Ich würde es ändern, umtrue
, nur um sicher zu gehen.cookie.txt
- Datei? Ist es selbst erstellt? Sind die Berechtigungen auf schreiben/Lesen gesetzt?var_dump(file_get_contents($cookie))
könnte sein, php kann es sehen, nachdem alle.lang
undsubmit
Spalten, aber das sollte keinen Unterschied machen. Speichern Sie das erste Ergebnis in einer Datei, zu sehen, was es produziert. Vielleicht wollen Sie auch zu schaltenCURLOPT_HEADER
. Und wieder, versuchen, einen absoluten Pfad.Zuerst es wäre praktisch, wenn man die curl Zeilen in eine Funktion aus.
Nun die Schritte, die sollte ziemlich einfach sein.
BEARBEITEN
Stellen Sie sicher, cookie.txt ist im selben Verzeichnis wie die php-Datei.
und stellen Sie sicher, dass es beschreibbar ist. ( chmod 777 )
zu überprüfen :
Etwas wie dieses :
Dann login :
Angemeldet ? überprüfen cookie.txt für den Inhalt.
Schritt 2 , zweite Seite.
Sowas in der Art... Lassen Sie mich wissen, wenn es funktioniert.