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


    - 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?!

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

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

    Code
    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
    1. <?php
    2. var_dump($_POST);


    Da kommt dann sowas raus:

    Code
    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
    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
    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
    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'; ?>

    Code
    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":



    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.





    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.

  • Wie gesagt: Vom IIS hab ich wenig Ahnung und ich verachte Windows als Server-OS.
    Ich nehme an, der Webserver ist so eingerichtet, dass der Nutzer, unter dem der Webserver läuft, generell nur lesende Rechte auf die Web-Verzeichnisse hat. Demnach kann man per PHP auch keine Änderungen machen.
    Und wie @SrONight schon richtig erkannt hat, funktioniert chmod unter Windows sowieso nicht.

  • Alles klar, er wird sich später darüber belesen und das dann so einstellen, dass ich möglichst gut die Charaktere aktuell halten kann.
    Die Lösung mit der "speichern.php" gefällt ihm nicht so wirklich, da er etwas Angst vor Hackerangriffen etc. hat. Das er das nicht möchte, kann ich nachvollziehen und will deswegen auch nicht weiter diskutieren.
    Stattdessen hat er die Nutzung eines CMS' vorgeschlagen. Habe mir also Wordpress geladen und werd erstmal darauf warten, bis er mir eine MySQL DB eingerichtet hat, die ich dann in die Wordpress Config eintragen kann.
    Mal sehen, was sich damit so zaubern lässt.

  • Ich denke wenn du uns mitteilst was dein schlussendliches Ziel ist, könnte man das Ganze ein wenig besser einschätzen.


    Nach wie vor, Seite aktuell halten, ohne - wie bei FileZilla - den Upload nochmal bestätigen zu müssen.
    Da es voraussichtlich 3-4+ Charaktere Gibt, die alle verschiedene Fertigkeiten, Aspekte, Fatepunkte, etc. besitzen wird das ziemlich stressig als Spielleiter das ganze aktuell zu halten mit dem Umweg nochmal auf Filezilla zu wechseln um den Upload jeweils zu bestätigen.

  • Joomla oder ähnliches wäre vielleicht zu komlex...
    Wordpress würde gehen ;)
    Alternativ kannst du aber auch ein Script schreiben, was nicht auf .txt-Datein basiert, sondern auf ein Datenbank-System, dann hättest du das "Problem" mit dem Filezilla Upload nicht mehr.

  • Joomla oder ähnliches wäre vielleicht zu komlex...
    Wordpress würde gehen ;)
    Alternativ kannst du aber auch ein Script schreiben, was nicht auf .txt-Datein basiert, sondern auf ein Datenbank-System, dann hättest du das "Problem" mit dem Filezilla Upload nicht mehr.


    Setzt dieses DB-System Wordpress voraus oder geht das auch so? Von MySQL habe ich wenig bis keine Ahnung. Hatte zwar 'ne Weile Microsoft Access in der Schule... aber auch dort nicht wirklich die SQL Programmierung sondern nur das mit der schicken GUI :D.