Programmcode

<?PHP


//  ====================================================
//  Konfiguration
//  ====================================================

//  Variabel  mit  Verzeichnisnamen
     
$speicherort  'tagebuch';

//  ====================================================
//  Eintrag  löschen
//  ====================================================

//  Prüfen  ob  Befehl  gesendet  wurde
if(isset($_GET['delete']))  {
     
//  Sicherheitsprüfung,  Dateiname  darf  nur  aus  Zahlen  bestehen
     
if(ctype_digit($_GET['delete']))  {
             
//  Dateinamen  zusammensetzen
             
$eintrag  $speicherort.'/'.$_GET['delete'];
             
//  Prüfen  ob  Datei  existiert
             
if(file_exists($eintrag))  {
                     
//  Datei  löschen
                     
unlink($eintrag);
              }
      }
     
//  Das  Tagebuch  neu  aufrufen  (Weiterleitung  und  Beenden)
     
header("Location:  tagebuch.php");  exit;
}

//  ====================================================
//  Eintrag  speichern
//  ====================================================

//  Prüfen  ob  Eintrags-Daten  gesendet  wurden
if(isset($_POST['eintrag'])  AND  $_POST['eintrag'])  {
     
//  Eine  Datei  mit  den  gesendente  Daten  erstellen
     
file_put_contents(
             
$speicherort.'/'.$_POST['zeit'],
             
$_POST['eintrag']
      );
}

//  ====================================================
//  Eintrag  bearbeiten
//  ====================================================
if(isset($_GET['edit']))  {
     
//  Prüfen  ob  Dateiname  nur  aus  Zahlen  besteht
     
if(ctype_digit($_GET['edit']))  {
             
$dateiname  $speicherort.'/'.$_GET['edit'];

             
//  Prüfen  ob  Datei  existiert
             
if(file_exists($dateiname))  {
                     
//  Datei  auslesen  und  Daten  übergeben
                     
$text  file_get_contents($dateiname);
                     
$zeitstempel  $_GET['edit'];
              }
      }
}

//  ====================================================
//  Formular  und  Ausgabe
//  ====================================================

//  Erstellen  eines  UNIX-Timestamp,  falls  nicht  existent
if(!isset($zeitstempel))  {  $zeitstempel  time();  }

//  Tagebuchtext,  erstellen  falls  nicht  exisitiert  (leer)
if(!isset($text))  {  $text  '';  }

//  Ausgabe  des  Eingabeformulars
$formular  '
<form  method="post"  action="tagebuch.php">
      <p>
              Neuer  Eintrag:<br  />
              <textarea  name="eintrag"  cols="42"
                rows="5">'
.$text.'</textarea>
      </p>
      <p>
              <input  type="hidden"  name="zeit"  value="'
.$zeitstempel.'"  />
              <input  type="submit"  name="submit"  value="Eintragen"  />
      </p>
</form>
'
;
echo 
$formular;

//  ====================================================
//  Ausgabe  des  Tagebuches
//  ====================================================

//  Dateien  aus  dem  speicherort  lesen
     
$dateien  scandir($speicherort);

//  Sortieren  der  Dateinamen  nach  Nummern  (umgekehrt)
     
rsort($dateienSORT_NUMERIC);

//  Schleife  für  Ausgabe
     
foreach($dateien  as  $datei)  {

             
//  Falls  es  keine  Datei  ist,  überspringen
             
if(!is_file($speicherort.'/'.$datei))  {  continue;  }

             
//  Timestamp  umwandel  in  deutsches  Datum,  und  Ausgabe
             
echo  '<p><b>'.date("d.m.Y  H:i:s",$datei).'</b><br  />';

             
//  Lesen  des  Inhaltes  der  Datei,  und  Ausgabe
             
echo  file_get_contents($speicherort.'/'.$datei);

             
//  Link  zum  Löschen  des  Eintrags
             
echo  '<br/>';
              echo 
'<a  href="tagebuch.php?delete='.$datei.'">Löschen</a>';
             
//  Link  zum  Bearbeiten  des  Eintrages
             
echo  '  -  ';
              echo 
'<a  href="tagebuch.php?edit='.$datei.'">Bearbeiten</a>';
              echo 
'</p>';
    }

?>

Ohne Kommentare

Um ein Mal zu sehen, wie viele Zeilen tatsächlicher Programmcode benötigt wird, um die Grundfunktionen eines Tagesbuches zu erfüllen, hier ohne Kommentare:

<?PHP
$speicherort 
'tagebuch';

if(isset(
$_GET['delete']))  {
      if(
ctype_digit($_GET['delete']))  {
             
$eintrag  $speicherort.'/'.$_GET['delete'];
              if(
file_exists($eintrag))  {
                     
unlink($eintrag);
              }
      }
     
header("Location:  tagebuch.php");  exit;
}

if(isset(
$_POST['eintrag'])  AND  $_POST['eintrag'])  {
     
file_put_contents(
             
$speicherort.'/'.$_POST['zeit'],
             
$_POST['eintrag']
      );
}

if(isset(
$_GET['edit']))  {
      if(
ctype_digit($_GET['edit']))  {
             
$dateiname  $speicherort.'/'.$_GET['edit'];
              if(
file_exists($dateiname))  {
                     
$text  file_get_contents($dateiname);
                     
$zeitstempel  $_GET['edit'];
              }
      }
}

if(!isset(
$zeitstempel))  {  $zeitstempel  time();  }
if(!isset(
$text))  {  $text  '';  }
$formular  '
<form  method="post"  action="tagebuch.php">
      <p>
              Neuer  Eintrag:<br  />
              <textarea  name="eintrag"  cols="42"
                rows="5">'
.$text.'</textarea>
      </p>
      <p>
              <input  type="hidden"  name="zeit"  value="'
.$zeitstempel.'"  />
              <input  type="submit"  name="submit"  value="Eintragen"  />
      </p>
</form>
'
;
echo 
$formular;

$dateien  scandir($speicherort);
rsort($dateienSORT_NUMERIC);
foreach(
$dateien  as  $datei)  {
    if(!
is_file($speicherort.'/'.$datei))  {  continue;  }
    echo 
'<p><b>'.date("d.m.Y  H:i:s",$datei).'</b><br  />';
    echo 
file_get_contents($speicherort.'/'.$datei);
    echo 
'<br/>';
    echo 
'<a  href="tagebuch.php?delete='.$datei.'">Löschen</a>';
    echo 
'  -  ';
    echo 
'<a  href="tagebuch.php?edit='.$datei.'">Bearbeiten</a>';
    echo 
'</p>';
}

?>