Textdokument mit http dll bearbeiten

  • GM 8
  • Textdokument mit http dll bearbeiten

    Ich möchte das man in einem Gm Spiel einen Text schreibt und das dieser dann in dem Textdokument auf meinem Server gespeichert wird dabei soll es alles was vorher in dem Textdokument war löschen geht das überhaupt? Ich habe das probiert mit dieser Funktion aber anscheinend ist es nicht dafür gedacht:

    GML-Quellcode

    1. http_request_add_post_string(id,name,value)


    GML-Quellcode

    1. if question_01 = true
    2. {
    3. str = get_string("Bitte eine Antwort eingeben.(Wenn das Eingabefeld freigelassenwird wird keine Antwort erstellt!)","")
    4. request = http_request_create();
    5. http_request_set_url(request,"http://meinserver.bplaced.net/test.txt");
    6. http_request_perform(request);
    7. http_request_wait(request);
    8. http_request_add_post_string(request,Player,str)
    9. // Immer am Ende den Speicher freigeben.
    10. http_request_destroy(request);

    Ich hoffe ihr könnt mir helfen :S
    Mfg Rohkar
    Edit: Bin ich hier überhaupt richtig in Expertenfragen?? Edit: Der Sticky weiß Rat. ;) ~ Ih3
  • Das funktioniert aus dem Grund nicht, weil du dich per "FTP" mit der Seite verbinden musst, korrigiert mich, wenn ich falsch liege. Du brauchst noch das Passwort und vielleicht noch einen Port. Außerdem musst du deinen "Benutzernamen" kennen, Beispiel: "Rohkar.bplaced.net", erst dann kannst du die Datei bearbeiten. Sonst könntest du mit diesem Weg ja auch YouTube bearbeiten ^^
    Aber ich habe noch eine einfachere Lösung:
    Besorge dir Dropbox (ist auch kostenlos) und so kannst du immer deine Dateien bearbeiten (das ist bei mir in diesem Ordner "C:\Users\Clark\Dropbox"). Du hast da einen Ordner "Public", in diesen legst du einfach deine Textdatei (du musst dir auch das "Dropbox" Programm herunterladen, hab ich vergessen) und solang du dein Dropbox auf hast und dein PC an hast, kannst du mit GML einfach Daten darauf speichern (müssen keine Textdateien sein) und/ oder bearbeiten. Dropbox synchronisiert automatisch deine Dateien mit dem Dropbox-Server, sodass sich wenn irgendetwas geändert sofort die Datei überschrieben wird. Ich habe mal eine Beispiel Datei hochgeladen, damit du siehst das die Textdatei wirklich vorhanden ist *link* .

    Hoffe ich konnte dir helfen!
    MfG Clark

    DigitalClark
  • Du weiß aber schon, dass du meinserver.bplaced.net durch deinen bplaced usernamen ersetzen musst? ( z.B. rohkar.bplaced.net )

    Nun zur Frage: Das kannst du nur über php tun.
    Und mit http_request_add_post_string(id,name,value) kannst du dann den neuen Text angeben.

    Dein PHP Skript könnte z.B. so aussehen:

    PHP-Quellcode

    1. if ( isset( $_POST[ 'text' ] ) ) // Erst prüfen, ob ein Text übergeben wurde.
    2. {
    3. $f = fopen( "test.txt", "w" ); // test.txt zum schreiben öffnen ( Dadurch wird automatisch eine leere Datei erstellt bzw. der alte Inhalt gellöscht ).
    4. $str = str_replace( "#", "\n", $_POST[ 'text' ] ); // Mögliche GM-Zeilenumbrüche umwandeln ( damit sie in der Datei auch noch existieren ).
    5. fwrite( $f, $str ); // Schreibt den Text in die Datei.
    6. fclose( $f ); // Schließt die Datei und speichert sie auf dem Server.
    7. }

    Um das PHP auf den Server zu bekommen, musst du den Text da oben :whistling: in eine php datei ( z.B. test.php ) packen und auf den Server in den gleichen Ordner wie die Text Datei packen.
    Danach mit der http ext auf deinem server die PHP Datei anfordern ( http_request_set_url(request,"http://[DEINSERVER].bplaced.net/test.php"); )
    Anschließend musst du nur mit http_request_add_post_string(id,name,value) den Text anfügen ( name wäre hier "text" und value eben der Text ).

    PS: test.txt muss dabei die Berechtigungen 777 haben ( In FileZilla rechtsklick auf die Datei -> Dateiberechtigungen ).

    - Tobi97
    8|
  • Das funktioniert aus dem Grund nicht, weil du dich per "FTP" mit der Seite verbinden musst, korrigiert mich, wenn ich falsch liege. Du brauchst noch das Passwort und vielleicht noch einen Port. Außerdem musst du deinen "Benutzernamen" kennen, Beispiel: "Rohkar.bplaced.net", erst dann kannst du die Datei bearbeiten. Sonst könntest du mit diesem Weg ja auch YouTube bearbeiten ^^
    HTTP ist ja auch ein "Lesen"-Protokoll, nur die Methode PUT (seit HTTP 1.1?) kannst du Datein hochladen. Jedoch kannst du mit HTTP ein PHP-Skript ausführen lassen das dann die Datei bearbeitet.
    Ich habe das probiert mit dieser Funktion aber anscheinend ist es nicht dafür gedacht:
    Post ist eine zweite Übertragungsart bei HTTP mit POST kannst du fast unendlich viele Daten an den Server übertragen(so viel wie der Server packt), die Daten werden dabei direkt im Header gespeichert und nicht wie bei GET in der URL.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • @Tobi97 Das mit dem meinserver.bplaced.net war mir schon klar aber ich habe es rausgenommen damit nicht jeder auf meine Seite kennt... xD Wiedereinmal hilfst du mir anscheinend kennst du dich mit sowas aus ich auf jedenfall nicht für was ist eigentlich php ist das sowas wie java nur für internet? 8|
  • PHP is ne serverseitige Scriptsprache, die komplett auf dem Server ausgeführt wird ( der User bekommt also keine Möglichkeit ( außer mit FTP ), den Quellcode auszulesen, weil ein Serverinterner Interpreter vorher das PHP Script ausführt ).
    Damit kann man z.B. Daten in einer MYSQL Tabelle verwalten, Dateien ändern/lesen/löschen oder einfach das Datum ausgeben ( Es gibt natürlich viele weitere Möglichkeiten :D ).

    Den Rest kannse auf Wikipedia lesen, bin grade zu faul zum schreiben :P

    Es gibt unzählige Tutorials im Internetz, die dir den Einstieg vereinfachen.
    Ein sehr umfangreiches wäre z.B. phpbox und natürlich die offizielle Seite.

    PS: gm-d benutzt auch PHP ;)

    - Tobi97
    8|
  • Danke für die links ich bin sehr neugierig und habe gleich mal eine sehr sehr einfache Seite gemacht und jezt kommt doch eine Fehlermeldung auf der seite ist die Fehlermeldung:
    rohkar.bplaced.net/test/phptest.php

    hier ist der quelltext:
    Spoiler anzeigen
    <html>
    <head></head>
    <body>
    <?php
    $artikel = 45.99;
    $mws = $artikel * 0.16;
    $summe = $artikel + $mwst
    echo "Dieser Text wurde mit PhP geschrieben! Der Artikel kostet $summe Euro.";
    ?>
    </body>
    </html>

    er ist nur 11 Zeilen lang und ich verstehe nicht was das Problem ist ("habe Semikolons gesetzt) :D
    Mfg Rohkar p.s wenn ich andere Fragen habe sollte ich wohl besser einen neuen Thread erstellen :S
  • Tobi97 schrieb:

    Hinter $summe = $arktikel + $mws fehlt ein Semikolon ;)

    - Tobi97

    Hast recht! xD
    Ich überseh die kleinen dinger immer...
    Ich sollte mir aufjedenfall angewöhnen diese Semmikolons zusetzen den vom Gamemaker bin ich was anderes gewöhnt
    dort sollte ich auch absofort Semmikolons benutzen.
    Jezt funktioniert es auch (Kann man ja sehen auf der Seite) dann kann ich ja weitertüfteln :D
  • Rohkar schrieb:

    Jezt funktioniert es auch (Kann man ja sehen auf der Seite) dann kann ich ja weitertüfteln :D

    Uii das ist toll :)
    Aber ich bin jetzt beleidigt :P
    Hast du das mal mit Dropbox probiert? Es ist einfacher als PHP, PHP ist dafür aber umfangreicher.

    DigitalClark

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Clark ()

  • Clark schrieb:

    Uii das ist toll :)
    Aber ic hbin jetzt beleidigt :P
    Hast du das mal mit Dropbox probiert? Es ist einfacher als PHP, PHP ist dafür aber umfangreicher.

    Ja ich habe mir Dropbox angeschaut bin mir aber noch nicht sicher ob es das richtige ist da ich meinen Computer dann dafür an sein müsste permanent. Ich werde es mit beiden möglichkeiten probieren und entscheiden was mir mehr zusagt, zurzeit habe ich aber noch andere Sachen an denen ich Arbeite. Also nicht beleidigt sein! :D
  • Hast du das mal mit Dropbox probiert? Es ist einfacher als PHP, PHP ist dafür aber umfangreicher.
    PHP ist eine Skriptsprache und Dropbox ein Cloud(?)-Webspace(?).
    bin mir aber noch nicht sicher ob es das richtige ist da ich meinen Computer dann dafür an sein müsste permanent.
    Ich denke DropBox speichert die Daten auf ihren eigenen Server und das wird dann immer ausgetauscht wenn der Client(das Programm das auf deinem Computer laufen wird) merkt das du was geändert hast.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Das funktioniert aus dem Grund nicht, weil du dich per "FTP" mit der Seite verbinden musst, korrigiert mich, wenn ich falsch liege. Du brauchst noch das Passwort und vielleicht noch einen Port. Außerdem musst du deinen "Benutzernamen" kennen, Beispiel: "Rohkar.bplaced.net", erst dann kannst du die Datei bearbeiten. Sonst könntest du mit diesem Weg ja auch YouTube bearbeiten ^^
    Aber ich habe noch eine einfachere Lösung:
    Besorge dir Dropbox (ist auch kostenlos) und so kannst du immer deine Dateien bearbeiten (das ist bei mir in diesem Ordner "C:\Users\Clark\Dropbox"). Du hast da einen Ordner "Public", in diesen legst du einfach deine Textdatei (du musst dir auch das "Dropbox" Programm herunterladen, hab ich vergessen) und solang du dein Dropbox auf hast und dein PC an hast, kannst du mit GML einfach Daten darauf speichern (müssen keine Textdateien sein) und/ oder bearbeiten. Dropbox synchronisiert automatisch deine Dateien mit dem Dropbox-Server, sodass sich wenn irgendetwas geändert sofort die Datei überschrieben wird. Ich habe mal eine Beispiel Datei hochgeladen, damit du siehst das die Textdatei wirklich vorhanden ist *link* .

    Hoffe ich konnte dir helfen!
    MfG Clark

    Ist das so? Deswegen habe ich gedacht das ich meinen Pc permanent an haben muss.
    Mfg Rohkar