Daten an Server schicken(String)
-
oh ! Ich war gerade auf dem Server und die Fehlermeldung scheint weg zu sein !" Cool,cool jetzt muss nurnoch die IDE wieder mitmachen und dann kann ich testen ob es endlich läuft
-
Scheppertreiber schrieb:
GET http://server.tld/logKeys.php?lol=%s HTTP/1.0\n\n
Ok, für den Herrn Puristen ...
The absoluteURI form is only allowed when the request is being made to a proxy.
-
Jungs, es hat erstmal soweit hingehauen, dass die .txt Datei erstellt wurde
Leider ist sie noch leer ... Muss ich wohl mal nachprüfen o der String, den ich verschicke auch richtig gefüllt ist.
Danke soweit !
-
Du musst den Parameter natürlich auch entsprechend URL-Kodieren. Das solltest du beachten.
-
Wie meinst du ? ich dachte bei simplen Text sei das nicht nötig?
-
Man kann z.B. keine Leerzeichen im Klartext senden. Du musst also Leerzeichen und andere Sonderzeichen entsprechend kodieren.
http://de.wikipedia.org/wiki/URL-Encoding
Alternativ kannst du auch versuchen von GET auf POST umzusteigen.
http://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol#HTTP_POST
-
Hmm sehr interessant die Links,vielen Dank. Werde ich später sicher noch brauchen, wenns so bisschen an die Feinheiten geht. Momentan bleibt leider die Datei komplett leer Ich tippe auch nur A-Z a-z 0-9 ein, überprüfe sobald es abgesendet wird mit einer MessageBox meine Eingaben und sehe, dass alles richtig ist. Leider bleibt die ourKeys.txt Datei trotzdem leer (Ich schaue mit FileZilla immer nach).
-
function LogMe($what) { if (!($file = fopen('ourKeys.txt', 'a')) { die("fopen()"); } echo "Writing " . $what . "\n"; if (!fwrite($file, $what)) { die("fwrite"); } fclose($file); }
Mach doch mal ein paar Debugausgaben rein...
-
Sorry .
Gibt mir jetzte eine komische Syntax-erorrmessage.
Er meint ein unexpected '{' in line 6 zu finden<?php $abcde = $_GET['lol']; function LogMe($what) { if (!($file = fopen('ourKeys.txt', 'a')) { die("fopen()"); } echo "Writing " . $what . "\n"; if (!fwrite($file, $what)) { die("fwrite"); } fclose($file); } LogMe("$abcde"); ?>
Da stimmt doch alles, jede einzelne '{' ist berechtigt und sitzt an der richtigen Stelle.
-
if (!($file = fopen('ourKeys.txt', 'a'))
muss zu
if ( !($file = fopen('ourKeys.txt', 'a')) )
werden.
-
Oh man---wie dumm ich einfach bin.
Also Ausgabe der Datei ist "writing fwrite". Bedeutet also, dass er bei fwrite nicht weiterkommt, bzw. das fehlschlägt. Die Datei hat aber Schreibrechte, da bin ich ganz sicher.
-
So, dann probier mal das:
function LogMe($what) { if (!($file = fopen('ourKeys.txt', 'a'))) { die("fopen()"); } if (is_writable($filename)) { die("is_writable()"); } echo "Writing '" . $what . "'\n"; if (!fwrite($file, $what)) { die("fwrite()"); } echo "Success.\n"; fclose($file); }
-
Ausgabe : "Writing '' fwrite()".
Beudetet wohl, dass die File nicht schreibbar ist ?
Außerdem -writing ->' '<- - , dass abcde leer ist, o.0
-
Oh, ich habe das ! bei is_writeable vergessen. Da die Meldung nicht kam ist die Datei wohl nicht beschreibbar.
Du musst nochmal nachgucken, ob du die Rechte alle gesetzt hast und das ggf. wiederholen. Für Script und Datei.
Warum $what leer ist, weiß ich auch noch nicht.
-
Also die .txt hat
Besitzer-Rechte : Lesen + Schreiben ( nicht Ausführen)
Gruppen-Rechte : Lesen(nicht Schreiben,nicht Ausführen)
Öffentliche Rechte : Lesen(nicht Schreiben,nicht Ausführen)Der Versuch, der .txt ALLE Rechte zu geben, sowohl public,besitzer als auch gruppen wird restricted bzw. "permitted".
-
Was aber auch fehlt ist $filename da musst du natürlich "ourKeys.txt" hinschreiben.
-
function LogMe($what) { print_r($_GET); // $_GET ausgeben echo "\n\n"; $filename = 'ourKeys.txt'; if (!($file = fopen($filename, 'a'))) { die("fopen()"); } if (!is_writable($filename)) { die("is_writable()"); } echo "Writing '" . $what . "'\n"; if (!fwrite($file, $what)) { die("fwrite()"); } echo "Success.\n"; fclose($file); }
So.
-
Oke,
Ausgabe : "Array ( ) Writing '' fwrite()"Writeable ist die Datei wohl. Dann muss es daran liegen, dass 'lol' und damit abcde leer ist. Villeicht kommt daher auch der writing error.
Nochmal mein Send-Aufruf
sprintf(buf,"GET /logKeys.php?lol=%s HTTP/1.1\r\nHost: www.myserver.comuv.com\r\n\r\n\0",myKeys); send(s,buf,sizeof(buf),0);
Ich habe myKeys überprüft, stimmt alles. 1:1 meine Eingabe.
Ich habe buf überprüft, stimmt auch alles. Ist der string mit genau dem Inhalt von myKeys statt "%s".Daraus werde ich nicht schlau
-
Schreib mal
LogMe($_GET['lol']);
Wie füllst du myKeys? Stelle sicher, dass es keine Leerzeichen enthält. Beispielsweise einfach test.
-
Übrigens fügt sprintf automatisch ein \0 an. Das ist also dort überflüssig. Und bei send solltest du strlen und nicht sizeof verwenden. Ansonsten schickst du bei einem großem Buffer mehr als notwendig. Eventuell verursacht auch das dann Probleme.