Thomas Schmieder: html site anzeigen

Beitrag lesen

Hi Andi,

Cheatah fragte gerade, was Dein Problem ist. Ich will mal versuchen, DeinE ProblemE in Worte zu fassen:

Du willst eine HTML-Seite im öffentlichen Bereich anbieten
  Das ist kein Problem, du weisst, wie das geht.

Du willst ein php-Script im öffentlichen Bereich bereitstellen. damit beim Aufruf daraus dynamisch eine HTML-Seite entsteht. Auch kein Problem.

Du weisst, dass nur der Parser (wwwrun) Zugriff auf die Dateien braucht, und zwar nur lesenden.

Nun willst Du ein PHP-Script bauen, das eine Textarea enthält und das nur vom Admin aufgerufen werden darf. Das kannst Du erreichen, indem Du das Script in ein geschütztes Verzeichnis stellst. (.htaccess) Außerdem kannst Du dem Script selber eine Passwortabfrage einbauen.

Die Textarea kannst Du in einer Textdatei in jedem beliebigen Verzeichnis abspeichern, auf das der PHP-Deamon (wwwrun) schreibenden Zugriff hat. Der Name der Datei ist frei wählbar.

HÜTE DICH aber davor, eine Endung zuzulassen, die der PHP-Deamon als zu interpretiernde Datei (php-Datei) ansehen würde. Du solltest die Endung der Datei fest im Programm verdrahten, auch wenn Du viellicht den Namen über ein input-Feld eingeben willst.

Nun ein wenig Code, der Dir weiterhelfen sollte...

<html>
  <head>
    <meta http-equiv="expires" content="0">

<title>Uebung Textfelder mit PHP füllen</title>
  </head>

<body>

<?
       if ($datenfeld)
         $datenfeld = stripslashes($datenfeld);
//         $datenfeld = strip_tags($datenfeld);  Wenn man keine HTML-Tags wünscht

if ($new)
       {
         $datei=fopen("../daten/textdatei.txt","w+");
         fputs($datei,$datenfeld);
         fclose($datei);
       }

if ($append)
       {
         $datei=fopen("../daten/textdatei.txt","a+");
         fputs($datei,$datenfeld);
         fclose($datei);
       }

if ($delete)
       {
         $datei=fopen("../daten/textdatei.txt","w+");
         fclose($datei);
       }

?>

<form action="uebung_textfeld.php" name="edit" ID="edit"
        method="post" enctype="multipart/formdata">

<textarea rows="20" cols="60" name="datenfeld" id="datenfeld" wrap="soft"><?
           if (file_exists('../daten/textdatei.txt'))
             readfile('../daten/textdatei.txt')
      ?></textarea>

<br>

<input type="submit" name="new" ID="new" value="überschreib den alten Mist">
      <input type="submit" name="append" ID="append" value="dazu zum alten Mist">
      <input type="submit" name="delete" ID="delete" value="wech mit dem Zeuch">
    </form>
  </body>
</html>

Eine installierte Version findest du unter http://bitworks.de/~tschmieder/uebung_textfeld.php

Die Textdatei liegt hier außerhalb der Document Root in einem extra Datenverzeichnis. Hierauf hat nur der PHP-Deamon Zugriff, nicht aber der Apache "HTML-Deamon".

Wenn Du daraus neuen Code entwickelst, der funktioniert, dann schick mir bitte eine Kopie für meine Sammlung.

Liebe Grüße aus http://www.braunschweig.de

Tom