Florian: CGI Script funktioniert nicht.

Beitrag lesen

Hallo
Ich habe ein CGI script dass Formulareingaben in eine Datei speichern sollte. Leider Funktioniert es nicht mehr (liegt bestimmt daran dass ich ein blutiger Anfänger bin). Könnte es jemand für mich Funktionsfähig machen?

Das Script sollte überprüfen ob die beiden Passwörter übereinstimmen - wenn nicht soll keine Eintragung in der txt datei vorgenommen werden und es soll dem Besucher angegeben werden dass die passwörter nicht übereinstimmen.

Wenn es möglich ist sollte das script auch Überprüfen ob der name schon mal benutzt wurde wenn ja - keine Eintragung mit Ausgabehinweiß dass der Name bereits belegt ist.

Vielen Dank im vorraus.

#!/usr/bin/perl
$datfile="eingabe.txt";
print "Content-type: text/html\n\n";
####### Formulardaten einlesen ###################
use CGI;
$cgi->param("name");
$cgi->param("mitteilung");
$cgi->param("passwort");
$cgi->param("passwort2");

if ($pw != $pwst) {
print "<html><head><title>FEHLER</title></head>\n";
print "<body bgcolor="navy" text="red" link="yellow" alink="lime" vlink="yellow"\n";
print "<h1><center>Es ist ein Fehler aufgetreten</center></h1>\n";
print "<br><br>\n";
print "Ihre Passwörter $passwort und $passwort2 stimmen nicht überein! <br>\n";
print "<br><br><a href="javascript:history.back()">Zurück</a></body></html>\n";
};

print "<html><head><title>Vielen Dank für ihre Eingaben</title></head>\n";
print "<body bgcolor="navy" text="white" link="yellow" alink="lime" vlink="yellow"\n";
print "<h1><center>Vielen Dank für ihre Eingaben</center></h1><br>\n";
print "<br><br>\n";
     print "Ihr Name                 = $name <br>\n";
     print "Ihre Mitteilung          = $mitteilung <br>\n";
     print "Ihr Passwort             = $passwort <br>\n";
print "<br><br><a href="javascript:history.back()">Zurück</a></body></html>\n";

if ($action eq "start") {&start;}

open(DATA,">>$datfile");
      print DATA "$name§$mitteilung§$passwort§$passwort2§\n";
      close(DATA);

sub start {
   open(INDEX,"$datfile");
            @index = <INDEX>;
            close(INDEX);
            foreach (@index)       {
                        $dzeil =$_;
                  chomp($dzeil);

($name,$mitteilung,$passwort,$passwort2) = split(/§/,$dzeil);
     print "Ihr Name                 = $name\n";
     print "Ihre Mitteilung          = $mitteilung\n";
     print "Ihr Passwort             = $passwort\n";
     print "Ihre Passwortbestätigung = $passwort2\n";
     exit;
     }
     }