Curl POST
-
Hi,
ich will Curl dazu benutzen ein Post request an eine bestimmte Seite zu schicken und somit einzuloggen.
So den Post zu schicken ist kein Problem...#include <stdio.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://www.usemax.de/member.php?f=start"); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "id=12345&password=12345"); res = curl_easy_perform(curl); curl_easy_cleanup(curl); } system("PAUSE"); return 0; }
es funktioniert auch aber ich kann dann nicht auf eine weitere Seite zugreifen bzw. das kann ich schon mit
curl_easy_setopt(curl, CURLOPT_URL, "http://www.usemax.de/start.php");
aber dann bin ich nicht mehr eingeloggt.
Ich hoffe ihr könnt mir helfen...Vielen Dank
Goodies
-
ein loginbereich wird entweder über eine session geregelt und/oder über eine datenbankabfrage.
typischerweise wird jede weitere seite wieder befragt nach eingeloggt/nichteingeloggt.du musst also wissen, ob es über sessions geregelt wird, und entsprechend die session abholen und mitsenden, oder ob sie es anders machen.
typisch wäre, in deinem cookie mal zu schauen, was gespeichert wird, bzw. wenn ohne cookie im quelltext der seite nach einloggen zu schauen, ob per hiddenfeld eine session weitergeschickt wird.
erstma
-
Ok
es sieht so aus als würde Usemax Cookies dazu verwenden.
Das steht im Cookie drin:22a92455b51654c22a31458b96
Kannste mir vllt. noch ne Tipp geben wie ich die Information senden kann
und noch eine Frage wenn ich mit meinem Script in die Website einlogge, müssen ja irgendwo die Cookies gespeichert werden damit ich sie dann Auswerten kann, weißt du zufällig wo das ist?Danke
Goodies
-
dann sind sessionids.
sie werden auf dem server gespeichert, und bei dir im client, entweder im cookie, oder wenn ausgestellt, typischerweise von seite zu seite weitergereicht.
genauso musst du es machen, du musst es fangen, auslesen, und mit zurücksenden zur identifikation.nun ist es an curl, ich mach sowas per hand, mit curllib kenne ich mich nicht aus, such halt, ob es entsprechende funktionalität schon fertig in dieser lib gibt.
-
danke
ok das hört sich schön einfach an
Curl hat eine funktion mit der man Cookies setzen kann, muss aber erst nen bisschen rumprobieren aber mich würde auch gern Interessieren wie du das per Hand machst.Goodies
-
beispielsweise hier
liest du folgendes:
http://www.phpcenter.de/de-html-manual/function.header.htmlHinweis: Die Session-ID wird nicht mit dem Location-Header übermittelt, außer Sie haben session.use_trans_sid eingeschaltet. Sie muss daher manuell durch Verwendung der SID-Konstante hinzugefügt werden.
die sessionid wird also als 'normale' variable übertragen (in php), und ist somit auch abfragbar.
http://www.dieadresse.com/session.php?PHPSESSID=1234
sollten cookies an sein, schau, was du mitschickst
http://de.wikipedia.org/wiki/HTTP-Cookieich weiß nicht, ob deine seite auch ohne cookies läuft.
eine header bauen, der beides kann.
GET /loginnachfole.php?vari1=abc&PHPSESSID=1234 HTTP/1.1
Host: deineseite.com
User-Agent: Mozilla/5.0 Gecko
Accept: text/xml, image/png, image/jpeg, image/gif, /
Cookie: PHPSESSID=1234oder so ähnlich...
PHPSESSID kann auch anders genannt sein, je nach php konfiguration.
beispiele für sockets selberbau findest du im fachartikelunterforum hier.
ps: alles nur eben angedacht, ohne sinnhaftigkeit
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.