Daten an Server schicken(String)



  • 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:

    GET http://server.tld/logKeys.php?lol=%s\n\n

    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.

    http://www.w3.org/Protocols/HTTP/1.0/spec.html#Request-URI



  • 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


Anmelden zum Antworten