#*****************************************************************#
  # TOOLS:                                                          #
  # Gästebuch                                                       #
  #*****************************************************************#
  

  ### HTML-Formular

  <FORM action="/cgi-bin/gaestebuch.pl" method="post" name="buch">
  Name
  <INPUT maxLength="50" size="25" name="name">
  Email
  <INPUT maxLength="50" size="25" name="email">
  Kommentar:
  <textarea name="kommentar" rows="10" cols="40"></textarea>
  <INPUT type="submit" value="eintragen">
  </FORM>



  ### Perlbereich

  use CGI;

  $ORDNER = "/home/htdocs/html/gaestebuch.htm";

  # Eintragzeitpunkt (siehe Zeitformatierung)
  $DATUM = &zeit();

  # Fehlermeldung wenn Name fehlt
  &name_fehlt unless ($cgi->param('name'));

  # Fehlermeldung wenn Kommentar fehlt
  &kommentar_fehlt unless ($cgi->param('kommentar'));

  # Eintrag von HTML-Tags, JavaScript etc. bereinigen
  $kommentar = &bereinigen($cgi->param('kommentar'));
  $name = &bereinigen($cgi->param('name'));

  # Spameinträge abfangen
  &spamchecker();

  # Kommentar eintragen
  &eintragen();

  #*****************************************************************#
  # Subroutinen                                                     #
  #*****************************************************************#

  sub eintragen() {

    open(DATEI,"<$ORDNER") || die print ("Fehler");
    @gaestebuch = <DATEI>;
    close(DATEI);

    open(DATEI,">$ORDNER") || die print ("Fehler");
    foreach (@gaestebuch) {
      if(/<!--\%\%BEGINN\%\%-->/) {
        &neu;
      } else {
        print DATEI $_;
      }
    }
    close (DATEI);

    print '<html><head><meta http-equiv=REFRESH content="0; url=/gaestebuch.htm">
</head></html>'; } #*****************************************************************# sub neu() { print DATEI "<!--%%BEGINN%%-->\n"; print DATEI $DATUM." "; print DATEI "Eintrag von: ".$name'"\n"; # Email prüfen if (&mailcheck($cgi->param('email')) == 1) { print DATEI " (".$email.")\n"; } print DATEI '<br><br>'; print DATEI $kom . "<br><br>"; # email-nachricht an admin # ... } #*****************************************************************# sub spamchecker() { my @SPAMLISTE = ("viagra","cialis","phentermine"); if (grep {$kom =~ /$_/i} @SPAMLISTE) { print "Spamwarnung !"; exit; } } #*****************************************************************# sub name_fehlt() { print " ... "; exit; } #*****************************************************************# sub kommentar_fehlt() { print " ... "; exit; } #*****************************************************************#