Hier hast Du von Christoph Bergmann die Nutzerdatenbank und die dazugehörende Seite. So funktioniert der Passwortschutz. Du kannst das ganze übrigens ach in der BIB nachlesen, oder von dort direkt in Dein Verzeichnis kopieren.
Gruß Ingo
Datenbanken
adressen
# Feld Sortierung Typ Parameter
1 Name Text text
2 Strasse --- text
3 Ort --- text
Der Aufbau dieser Datenbank ist völlig frei.
nutzer
# Feld Sortierung Typ Parameter
1 Name Text text
2 Passwort --- text
3 Leserechte --- checkbox Ausgabe markiert=Ja
4 Schreibrechte --- checkbox Ausgabe markiert=Ja
5 Änderrechte --- checkbox Ausgabe markiert=Ja
Momentan werden nur die Felder "Name" und "Passwort" genutzt. In Zukunft soll man die Rechte für jeden Nutzer speziell einstellen können.
adressen
<perl>
if($namerein ne "")
{
Wurde ein Name angegeben?
get "Name==!$namerein", "nutzer";
Ja: Eintrag mit diesem Namen aus Nutzer-Datenbank holen.
if($Passwort ne "" && $Passwort eq $pwrein)
{
Stimmt das übergebene Passwort mit dem in der Nutzerdatenbank überein?
do_all "", "namerein", "pwrein";
Ja: Übergabeparameter so setzen, dass die Anmeldung (Name und Passwort) auch bei weiteren Links durchgereicht wird. Das "do_all" entspricht einem <do action=all>. Der erste Wert ist leer (""), da drin können die bei <do action=all> üblichen Parameter übergeben werden.
} else
{
out "<b>Anmeldung fehlgeschlagen!</b>";
$namerein="";
Passwort falsch: Entsprechende Meldung ausgeben und Nutzername löschen, um im folgenden das Anmeldeformular auszugeben.
}
}
if($namerein eq "")
{
Der Nutzer ruft die Seite zum ersten Mal auf oder ein Anmeldeversuch hat fehlgeschlagen.
out <<EOF;
<h2>Anmeldung</h2>Bitte melden Sie sich an:
<form action="http://baseportal.de/cgi-bin/baseportal.pl?htx=$htx" method="post" enctype="multipart/form-data">
<input type=hidden name="htx=" value="$htx">
<table>
<tr><td>Name:</td><td><input type="text" name="namerein="></td></tr>
<tr><td>Passwort:</td><td><input type="password" name="pwrein="></td></tr>
<tr><td></td><td><input type=submit value="Anmelden"></td></tr>
</table></form>
EOF
Anmeldeformular ausgeben.
}
</perl>
Das wars auch schon... ;-)