baseportal
Suche: 
 Forum   Start 

Rechte für Seiten

ab Version 3 
Verstecken Inhalt

Nutzer-Datenbank und Anmeldeseite auswählen

Ebenso wie Datenbanken können Seiten mit einer Nutzer-Datenbank geschützt werden. Sie benötigen dies für nahezu jede komplexere Web-Anwendung.

Legen Sie einfach eine Nutzer-Datenbank für die Seite an und geben Sie den Nutzern das Recht "Ausführen".

Zusätzlich können Sie bei Seiten wählen, was passieren soll, wenn der Nutzer nicht korrekt angemeldet ist ("Ohne korrekte Anmeldung"):


Test auf korrekte Anmeldung


Wenn der Benutzer korrekt angemeldet ist, so enthält die Variable $_user den Nutzernamen, sonst ist sie leer. Hier ein Beispiel:

$bonus=10 if $_user ne "";
out "Punkte: ".($punkte+$bonus);
out login if $_user eq "";


Anmeldeformular ausgeben

Die Funktion login gibt das typische Anmeldeformular aus:

out login;

Natürlich kann auch ein eigenes Formular verwendet werden. Dieses muss die Parameter uid für den Namen und upw für das Passwort übermitteln.

Allerdings hat die Verwendung der login-Funktion einen grossen Vorteil: Alle Daten die ein angemeldeter Nutzer übermittelt, werden in das Anmeldeformular übernommen, falls er sich wegen einer abgelaufenen Session neu anmelden muss. Die abgeschickten Daten gehen also nicht verloren, sondern werden nach der Anmeldung gespeichert. Dies gilt selbstverständlich auch für URL-Parameter.


Abmelden

Mit logout können Sie die Session eines Nutzers löschen. Ein Abmelde-Link sieht dann z.B. so aus:

<a href="baseportal.pl?htx=$htx&cmd=logout&sid=$_session">Abmelden</a>
<perl>
logout if $cmd eq "logout";
</perl>


Nutzer-Werte

Oft werden für jeden angemeldeten Nutzer bestimmte Werte benötigt, z.B. sein Realname, das Alter oder das Anmeldedatum. Da die Nutzer-Datenbank eine ganz normale baseportal-Datenbank ist, können diese Werte einfach in zusätzlichen Feldern gespeichert werden. Nach einer Anmeldung stehen die entsprechenden Werte ohne weiteres Zutun in %_user. Haben Sie also beispielsweise ein Feld "Realname" hinzugefügt und dort die echten Namen der Nutzer gespeichert, so können Sie einfach mit $_user{Realname} darauf zugreifen.


Beispiel mit eigener Anmeldeprüfung

Ein komplettes Beispiel mit eigener Anmelde-Prüfung in derselben Seite sieht z.B. so aus:

<perl>
logout if $cmd eq "logout";          # Abmelden
return out login if $_user eq "";    # Nicht angemeldet

# Angemeldet...
$link="baseportal.pl?htx=$htx&uid=$_user&sid=$_session";
out "<p><a href=\"$link&cmd=logout\">Abmelden</a></p>";     # Abmelden-Link ausgeben
out "Hallo $_user{Realname} ($_user)... ".++$count;
out "<p><a href=\"$link&count=$count\">Weiter</a></p>";     # Link mit Nutzernamen und Session
</perl>

Sie können dieses Beispiel hier testen. Name und Passwort sind "test".

Alte Version vom 18.9.2007, 16:28 - Stichworte: Rechte, Ausführen, Anmeldung fehlgeschlagen, Nutzer-Datenbank, Login, Logout, $_user, $_session, Nutzer-Werte, %_user

c und wiederherstellen - + 
© baseportal GmbH. Alle Rechte vorbehalten.


powered in 0.01s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!