Seite 1 von 1

Formatprobleme mit wget und curl (bei Datenuebermittlung)

Verfasst: 18.09.2006 21:55
von alex_k
Hallo,

nun mal auf deutsch,
ich erhalte Variablen aus einem Forumlar. Diese Variablen werden an ein php-script uebermittelt, dass die Daten auf eine DB speichert. Zur Absicherung werden die Daten md5 kodiert. Dabei spielt auch der Zeitstempel einen Rolle, er fliesst mit in die Kodierung ein.

Wenn ich all diese Daten in einer <a href> Anweisung uebermittle, dann erhalte ich als Antwort vom Zielsystem, User wurde erfolgreich angelegt - was ich natuerlich auch ueberprueft habe.

Uebermittle ich diese Daten in meimem Script ueber wget oder curl, dann erhalte ich einen Fehler. Im einen Fall, dass der Zeitstempel bereits abgelaufen sei oder in der Zukunft liege. Im anderen Fall erhalte ich die Nachricht, Daten sind fehlerhaft.

Mein Verdacht ist, das wget und curl den Zeitstempel in einem anderen Format uebersendet, als ich ihm gebe (z.B. &time=1157097694) wird durch wget zu irgendwas.

Kennt jemand das Problem, oder hat wenigstens eine Idee ??

Hier nochmal in Kurzfom meien Anweisungen

Diese Funktioniert:
<a href= "http://mypage:8080/index.php?index=500&
cmd=save&time=$time&login=$login&hash=$hash_add"> klick </a>

Diese Funktionieren nicht:

shell_exec('wget "http://mypage:8080/index.php?index=500&
cmd=save&time=$time&login=$login&hash=$hash_add"');


$ch = curl_init("http://mypage:8080/index.php?index=500&
cmd=save&time=$time&login=$login&hash=$hash_add");
curl_exec($ch);
curl_close($ch);


Nein, ich kann leider nicht die <a href> Anweisung verwenden, da der Aufruf aus dem Script kommen muss und nicht durch die Interaktion mit einer Maustaste. Kann es sein dass ich wget sagen muss, es soll die Daten binär übermitteln ?

Danke im Voraus

aLeX...

Re: Formatprobleme mit wget und curl (bei Datenuebermittlung

Verfasst: 18.09.2006 22:35
von Banger
alex_k hat geschrieben:shell_exec('wget "http://mypage:8080/index.php?index=500& ... =$hash_add"');
Das kann schonmal nicht gehen, weil die Variablen wegen der single-quotes nicht ersetzt werden. Außerdem sollte man die Parameter aus Sicherheitsgründen immer escapen.
Besser:

Code: Alles auswählen

$uri = "http://mypage:8080/index.php?index=500&cmd=save&time=$time&login=$login&hash=$hash_add";
$out = shell_exec('wget -q -O - '.escapeshellarg($uri));
In $out hast Du nun auch die Ausgabe des Aufrufs...

Noch simpler geht's übrigens mit einem

Code: Alles auswählen

$out = file_get_contents("http://mypage:8080/index.php?index=500&cmd=save&time=$time&login=$login&hash=$hash_add");
BTW: der Hostname "mypage" ist dem Server auch bekannt, oder ist das nur ein Platzhalter für einen öffentlichen Hostnamen?

Verfasst: 19.09.2006 15:00
von alex_k
Hallo Banger,

leider funktionierte nur Dein wget code Bsp. aber das reicht mir ja schon.

Wenn ich mehr rausfinde, warum curl nciht geht, sage ich Bescheid


Danke und Gruss

aLeX.

Verfasst: 19.09.2006 16:28
von Banger
alex_k hat geschrieben:leider funktionierte nur Dein wget code Bsp.
Dann vermute ich mal, dass auf Deinem Server allow_url_fopen deaktiviert ist.
Setz mal das Errorreporting höher:

Code: Alles auswählen

error_erporting(E_ALL);
, dann solltest Du auch eine aussagekräftigere Fehlermeldung erhalten.