Curl und PHP für Login mit Cookie nutzen
Curl ist ein Abkürzung für “Client für Uniform Resource Locators”
Praktisch heißt das folgendes: Mit Curl lassen sich Ressourcen abrufen, die mittels URLs addressiert werden. Dabei werden die unterschiedlichsten Transportprotokolle untersützt (z. B. HTTP oder HTTPS). Außerdem werden die HTTP-Methoden, wie POST, GET, PUT oder DELETE unterstützt.
Nun zum interessanten Teil, wie bereits beschrieben, existiert eine Bibliothek für PHP, die die Curl-Funktionalität zur Verfügung stellt. Dort habe ich erklärt, wie man trotz deaktiviertem allow_url_fopen auf externe Dateien zugreifen kann – nämlich mit Curl.
Heute möchte ich erklären, wie es mittels Curl (relativ) einfach ist, einen Login durchzuführen, bei dem jedoch Cookies gesetzt werden. Curl bietet dafür mehrere Optionen, um mit Cookies umzugehen. Wir benötigen lediglich CURLOPT_COOKIEJAR und CURLOPT_COOKIEFILE.
Es folgt ein kleiner Beispiel-Quellcode für den Login:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.meinserver.de/login_mit_cookie.php?user=test&pass=geheim"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); $page = curl_exec($ch); curl_close($ch);
Durch die CURLOPT_COOKIEJAR-Option werden nun alle Cookies, die in der Datei login_mit_cookie.php angelegt werden, in der Datei cookie.txt gespeichert. Wichtig ist, dass die cookie.txt beschreibbar sein muss (also CHMOD 777).
Nachdem der Login mittels Curl erfolgt ist, kann man “weitersurfen” und dabei die gesetzten Cookies verwenden. Beispielsweise möchte man sich nach dem Login seine Statistiken abrufen (wobei die URL für die Statistik beispielhaft mit stats.php bezeichnet wird).
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.meinserver.de/stats.php"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); $statsPage = curl_exec($ch); curl_close($ch);
In diesem Fall nutzen wir also, die CURLOPT_COOKIEFILE-Option, diese nutzt die Cookie-Daten aus der cookie.txt und sendet sie bei der entsprechenden Curl-Anfrage mit. Anschließend ist in der $statsPage-Variable die Statistik-Seite und kann z. B. mit dem echo-Befehl ausgegeben werden.
Auf diese Weise ist es leicht möglich einen Login automatisch per PHP und Curl durchzuführen, auch wenn die betreffende Website Cookies nutzt.
- Geschrieben um 12:41Uhr
- RSS-Kommentare als Feed abonnieren
- TrackBack URI
Keine Kommentare
Einen Kommentar hinterlassen