HTML/PHP - Fragen/Probleme/Ideen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

      HTML/PHP - Fragen/Probleme/Ideen

      HTML/PHP - Fragen/Probleme/Ideen
      Hallöchen, wie viele vielleicht wissen habe ich eine eigene kleine Webseite.
      Da derjenige, mit dem ich das vorher zusammen auf die Beine gestellt habe, derzeit viel Stress hat, versuche ich allein etwas hinzukriegen.
      PaRaLLaX - BAUSTELLE

      Jedenfalls möchte ich realisieren, dass ich in einer Textdatei etwas eingebe und das umgehend hochgeladen wird und von der .php Seite ausgelesen und verarbeitet wird.
      Also:
      PaRaLLaX - BAUSTELLE
      Ich habe in der "charakter1.txt" das stehen: "TESTTSTSSTZSTSZTSTS", wenn ich in der Textdatei nun "Penis" eingebe und Strg+S (Speichern) drücke, möchte ich, dass auf der Seite umgehend "Penis" zu lesen ist und ich nicht erst zu FileZilla wechseln muss um den Upload zu bestätigen. Das wird bei mehreren Charakteren nämlich sehr anstrengend und würde den Spielfluss immens stören.

      Das ist so ziemlich mein Hauptproblem.

      Weitere Dinge die ich realisieren möchte:
      PaRaLLaX - BAUSTELLE - dort möchte ich, dass am unteren Rand die Navigation ist und immer brav mitscrollt. In Form von einem Dropdown-Menü, welches sich nach oben ausklappt.
      Der erste Punkt soll "Streams" sein, es klappen sich die Streams nach oben hin aus, ich kann mir einen Streamer auswählen, es soll der passende Stream in der Mitte geladen werden (später rechts daneben dann auch der Chat, statt dem Twitter-Liste-Feed), ohne, dass die Seite gewechselt wird. Ein weiterer Navigationspunkt könnte "Let's Wake Up" (vgl. "Über uns") sein, dort klappen sich dann die Namen der Mitglieder nach oben hin aus und wenn man dann auf einen der Namen klickt, wird man weitergeleitet zu einer personalisierten Seite (wird wohl das geringste Problem schätz' ich), auf der diese Person vorgestellt wird.
      Viel weiter habe ich das etwas überarbeitete Konzept noch nicht durchdacht.

      Whatever, meine Kenntnisse:
      - Heute das erste mal PHP verwendet
      Spoiler anzeigen

      HTML-Quellcode

      1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      2. <html xmlns="http://www.w3.org/1999/xhtml">
      3. <head>
      4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      5. <link rel="stylesheet" href="../css/style_para.css" type="text/css" />
      6. <title>PaRaLLaX - BAUSTELLE</title>
      7. </head>
      8. <body style="background-image:url(../bilder/pentagram.png); background-repeat:no-repeat; background-position:center top; background-attachment:scroll;">
      9. <div id="rpg"
      10. <h1>Dein Charakter</h1>
      11. <table>
      12. <?PHP
      13. $array = file("charakter1.txt");
      14. for($x=0;$x<count($array);$x++){
      15. echo "<tr><td>".$array[$x]."</td></tr>\n";
      16. }
      17. ?>
      18. </table>
      19. </div>
      20. </body>
      21. </html>
      Alles anzeigen

      - HTML... naja, so langsam komm ich mit dem Grundlegendsten zurecht, denke ich.

      Habe mir einen Teil selbst beigebracht (speziell nach dem gesucht, was ich brauchte) und einen größeren Teil habe ich von dem Freund beigebracht bekommen, der - wie Eingangs erwähnt - derzeit im Stress ist.

      Wäre nett, wenn mir da jemand helfen könnte :). Die rpg Seite (da wird erstmal das Rollenspiel vorgestellt... die Charaktere gehen dann noch in extra Ordner) sollte bis allerspätestens Samstag fertig sein :).

      // Da geht's schon los. Wie mach ich denn im CSS Dokument, dass die h1 noch größer wird? font-size hab ich eingestellt, aber nun ist die Überschrift genauso groß wie der Text. Zumindest scheint es so?!

      trytokillme schrieb:

      Mit dem auslesen hast du mehrere möglichkeiten.

      PHP-Einfach.de - PHP Tutorial - Datei auslesen

      Äh ja, aber die .txt Datei muss in diesem Fall doch auf dem ftp-Server liegen?! Somit muss ich dann ja nach wie vor, erstmal die aktualisierte .txt Datei hochladen (bei FileZilla den Upload bestätigen), damit der neue Text angezeigt wird?

      florian0 schrieb:

      Wäre es akzeptabel, wenn du keine Datei auf deinem Rechner editierst, sondern das ganze über ein Formular auf der Webseite änderst?
      (Natürlich mit Passwort :) )

      So lange es komfortabel ist und sich schnell Werte ändern lassen, gern :). Aber davon hab ich keine Ahnung :/ das klingt ziemlich schwer ^^.
      Ein wenig fordernd ist es schon. Aber schwer nicht.

      Eine Form:

      Quellcode

      1. <form method="POST" action="speichern.php">
      2. <textarea name="meintext"></textarea>
      3. <input type="submit" value="Speichern">
      4. </form>

      Klickt man auf "Speichern", wird der Text an das Script "speichern.php" übergeben.

      In der Datei "speichern.php" kann man über var_dump die übergebenen Daten anzeigen lassen:

      PHP-Quellcode

      1. <?php
      2. var_dump($_POST);


      Da kommt dann sowas raus:

      Quellcode

      1. array(1) { ["meintext"]=> string(5) "Benis" }


      Wie man sieht, ist $_POST ein assoziazives Array (assoziativ => es verwendet Strings als Array-Index statt Zahlen). Der von uns eingegebene Text steht im Feld "meintext". Das ist nicht nur rein zufällig auch die Bezeichnung der Textarea im HTML-Code.

      Den Text speichert man jetzt in eine Datei:

      PHP-Quellcode

      1. <?php
      2. file_put_contents('charakter1.txt', $_POST['meintext']);

      Wow. Such komplex ^^.

      Damit das ganze auch fehlerfrei läuft, soll es nur ausgeführt werden, wenn auch POST-Daten vorliegen. Zusätzlich filtern wir noch HTML-"Steuerzeichen" heraus, denn die können zu einem ernsthaften Problem werden (Thema: Cross-Site-Scripting / XSS). Dazu verwenden wir die PHP-Funktion "htmlspecialchars".

      PHP-Quellcode

      1. <?php
      2. if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['meintext'])) {
      3. file_put_contents('charakter1.txt', htmlspecialchars($_POST['meintext']));
      4. echo 'Gespeichert!';
      5. }


      Nun soll natürlich der Inhalt der Datei schon in der Textarea stehen, wenn man die Seite aufruft. Nichts leichter als das:

      PHP-Quellcode

      1. <form method="POST" action="speichern.php">
      2. <textarea name="meintext"><?php
      3. echo file_get_contents('charakter1.txt');
      4. ?></textarea>
      5. <input type="submit" value="Speichern">
      6. </form>


      An dieser Stelle verwende ich gerne die Kurzform für echo: <?= 'Auszugebender Text'; ?>

      Quellcode

      1. <form method="POST" action="speichern.php">
      2. <textarea name="meintext"><?= file_get_contents('charakter1.txt'); ?></textarea>
      3. <input type="submit" value="Speichern">
      4. </form>


      Das wars auch schon. Das ganze packt man nun alles in eine Datei und nennt diese "speichern.php":

      PHP-Quellcode

      1. <?php
      2. if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['meintext'])) {
      3. file_put_contents('charakter1.txt', htmlspecialchars($_POST['meintext']));
      4. echo 'Gespeichert!';
      5. }
      6. ?>
      7. <html>
      8. <head>
      9. <title>Speichern</title>
      10. </head>
      11. <body>
      12. <form method="POST" action="speichern.php">
      13. <textarea name="meintext"><?= file_get_contents('charakter1.txt'); ?></textarea>
      14. <input type="submit" value="Speichern">
      15. </form>
      16. </body>
      17. </html>
      Alles anzeigen


      Der Passwortschutz fehlt noch. Du verwendest den IIS als Webserver, von dem hab ich keine Ahnung xD. Gibts da einen funktionierenden Passwortschutz für Verzeichnisse? Ansonsten baut man das halt auch in PHP, is ja nich viel Aufwand.

      Edit: Hab mal einen minimalistischen Passwortschutz gebastelt. Das Passwort kann man im Browser speichern, dann muss man es nicht jedes mal neu eingeben.

      Spoiler anzeigen

      PHP-Quellcode

      1. <?php
      2. if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['meintext']) && !empty($_POST['passwd'])) {
      3. if ($_POST['passwd'] == 'Hans') {
      4. file_put_contents('charakter1.txt', htmlspecialchars($_POST['meintext']));
      5. echo 'Gespeichert!';
      6. } else {
      7. echo 'Falsches Passwort';
      8. }
      9. }
      10. ?>
      11. <html>
      12. <head>
      13. <title>Speichern</title>
      14. </head>
      15. <body>
      16. <form method="POST" action="speichern.php">
      17. <textarea name="meintext"><?= file_get_contents('charakter1.txt'); ?></textarea>
      18. <input type="password" name="passwd" >
      19. <input type="submit" value="Speichern">
      20. </form>
      21. </body>
      22. </html>
      Alles anzeigen




      PS: Die Code-Tags sind echt doof. Wieso kann man keine Sprachen mehr erzwingen :(
      Wow danke, ich les mir das gleich nochmal genauer durch. Sehr ausführlich, vielen Dank :).
      Und ich bin nicht Eigentümer des Webhosts/Webservers, sondern der besagte Freund von mir ^^. Ich werd ihn morgen mal fragen.

      Vielen Dank :).

      // @florian0 ich wollt grad mal schauen, wie sich das alles verhält, habs also erstmal so kopiert und wollte mir das auf der Seite dann anschauen...

      Warning: file_put_contents(charakter1.txt) [function.file-put-contents]: failed to open stream: Permission denied in E:\kunden\homepages\41\d480209240\www\para\RPG\speichern.php on line 7

      Gespeichert!

      Kam raus... es wird soweit alles richtig angezeigt, allerdings speichert er halt nicht.

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