Daten an Server schicken(String)



  • @,,,, 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



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


Anmelden zum Antworten