In Webshop einloggen und Warenkorb befüllen

sluggish

Mitglied
Hallo zusammen,

ich habe folgende Aufgabenstellung: In einen Warenkorb innerhalb eines geschlossenen Webshops (nur nach vorheriger Anmeldung) soll von einer anderen Seite auf dem selben Server der Warenkorb befüllt werden. Die Artikelnummern liegen vor.

Ich weiß, dass ein einloggen über cURL möglich ist, doch ich komm nicht so ganz mit den Cookies klar. Nachdem der Warenkorb gefüllt ist, soll die Seite angezeigt werden, da nach einem ausloggen der Warenkorb leer ist.

Der Warenkorb kann auf einer Seite, die nach dem Einloggen aufgerufen wird befüllt werden.

Im Internet gefunde Scripts funktionieren nicht. Ist es, wie ich es vor habe über PHP möglich?

Sluggish
 
Grundsätzlich wird es schon möglich sein, du brauchst aber einen guten Einblick in das System vom Webshop.
Du sagst, er liegt auf dem selben Server; aber wahrscheinlich ist es ein Hoster und der Shop gehört wem anderen?
 
Wenn der Webshop eine Schnittstelle anbietet (REST, SOAP, XMLRPC, ...) dann musst du diese gemäß den Interfacevorgaben ansprechen.

Ansonsten solltest du dir einen HTTP Sniffer installieren (z.B. Live HTTP headers [ist ein Firefox Plugin]) und das einloggen etc.. einmal manuell durchspielen, damit du weiß welche URLs aufgerufen werden und welche Daten versendet werden.

Danach musst du diese HTTP Requests mit deinem PHP Script simulieren. Ich kann dir im mom leider keine genau Syntax sagen, weil es schon zu lange her ist, aber funktionieren tut es auf jeden Fall.

Zum Login muss man normalerweise einen POST Request mit Usernamen und Passwort senden. Die Cookies stehen dann im Header der Respsonse vom Server. Um diese Auszulesen musst du in den Header nach dem String
Cookies:
suchen. Da es mehrere seien können (viele Webseiten verwenden Google Analytics, die schicken massig Cookies mit) musst du halt schauen welcher der richtige ist (auch hier hilft dir der HTTP Sniffer).
 
Ich mach das ganze einfach über cURL. "Eingeloggt" ist das Script bereits. Cookies werden in der cookies.txt gespeichert.

Befüllen klappt jedoch nicht so ganz. Mein Script wie folgt:
PHP:
<?php

//Die Session initialisieren
$ch = curl_init();

//Variablen setzen
$url ="URL";
$arrSubmit="LOGIN&PW";
$cookies="cookie.txt";


//Session Optionen setzen

curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $arrSubmit);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
//curl_setopt($ch, CURLOPT_FILE, $fp);

//Ausführen der Aktionen
curl_exec($ch);

curl_close($ch);

?>

Wie kann ich denn nun meine zweite URl ausführen? Das Handle in in das selbe, oder doch ein neues?

Sluggish
 
Zurück