Daten an Server schicken(String)
-
Hmmm, habs so ausprobiert, aber die Fehlermeldung auf dem Server ( in der datei loKeys.php) ist immernoch die selbe. Auch die .txt Datei wurde nicht erstellt.
Nochwas:Ganz am anfang gab es c.a so eine Fehlermeldung : Bei fopen file etc. access denied
Habe dann an dem Ordner bisschen mit den Rechten gespielt und die Fehlermeldung verschwand, aber die jetzige tauchte auf.
-
Wenn Dein Programm einen Fehler meldet stimmt zumindest der Aufruf
-
Hmmm?Meine WinApi also mein Programm meldet keinen Fehler. Ich weiß, dass der Client zum Server connectet und die Daten auch schickt.Nur scheint das der Server nicht verarbeiten zu können, es wird keine .txt erstellt und wie gesagt, auf dem Server gibt es immernoch in der logKeys.php-Datei die selbe Fehlermeldung. Die ist aber immer da und nicht abhängig davon, ob der Client versucht Daten zu schicken oder nicht.
-
Ich finde meine Kristallkugel leider nicht ...
Offensichtlich wird Dein Programm gestartet, auch bei PHP sollte
der Grund, warum er das fopen() nicht ausführt, harauszubekommen sein.(ich kenne PHP nicht, aber einen Fehlerstring müßte es da auch geben).
-
Im 1. Post sagte ich, dass ich diese Fehlermeldung auf dem Server in der .php Datei bekomme: Failed opening required '/www/myserver.comuv.com/logKeys.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in Unknown on line 0
Ich werde nun eben mal die Antwort vom Server aufschreiben, muss die Funktion aber gerade noch einbauen + abschreiben. Kommt per Edit.
-
Scheppertreiber schrieb:
Der Aufruf sollte so lauten:
Das stimmt nicht!
Der OP hat das schon richtig gemacht.
-
GET http://server.tld/logKeys.php?lol=%s HTTP/1.0\n\n
Ok, für den Herrn Puristen ...
-
Scheppertreiber schrieb:
GET http://server.tld/logKeys.php?lol=%s HTTP/1.0\n\n
Ok, für den Herrn Puristen ...
Noch immer nicht ganz korrekt. Die einzelne Zeilentrennung sollte mit
\r\n
vorgenommen werden und das Ende eines Requests mit\r\n\r\n
gekennzeichnet werden.Außerdem gibt es als Beispiel-URL www.example.com und ihre Variationen (s. Text auf der Seite).
Der Fehler liegt offensichtlich am PHP-Scriptselber. Vermutlich hast du keine Schreibrechte gegeben. Leg die Datei selber an und gib dem Programm und der Datei Schreibrechte.
Außerdem schreib in den PHP-Script in die erste Zeile noch:
error_reporting(E_ALL);
-
Mein Compiler setzt (systemkonform, halt Windoof) für \n ein CR LF ein.
Der Op schrieb: "Ich habe ein WindowsSocket", also sollte \n\n genügen.
-
@,,,, Ich habe gerade diem Ordner und der Datei volle Rechte gegeben(Was man ankreutzen konnte habe ich angekreuzt .) aber der Fehler besteht wohl immernoch. Ich kanns gerade nicht richtig tesen, da meine kack IDE auf einmal meint "Permission denied" und das Programm nicht fetig compilen will. Somit kann ich auch die Antwort des Servers gerade nicht posten. Vllt tuts nen PC-Restart ( Hab die uralte Dev C++ IDE ).
Danke schonmal soweit, die Code-Zeile werde ich auch mal einfügen.
-
Das HTTP-Protokoll ist genaustens beschrieben:
The Request-Line begins with a method token, followed by the Request-URI and the protocol version, and ending with CRLF. The elements are separated by SP characters.
Siehe RFC: http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1
Dabei entspricht das CRLF der Escapesequenz
\r\n
Und anzunehmen, dass der Compiler aus\n
sowieso\r\n
macht ist nicht nur gefährlich sondern einfach falsch.Im übrigen ist Dev C++ enorm veraltet. Ich würde dir zu einer vernünftigen IDE raten. Wahlweise Code::Blocks oder Visual C++ 2010 Express. Beide sind kostenlos erhältlich.
-
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.