 |
Viele Webmaster sind auf der Suche nach einer effizienten Möglichkeit, manche Inhalte nur bestimmten Personen zugänglich zu machen. Aktuell wird dieses Thema z.B. dann, wenn es darum geht, Inhalte zu verkaufen.
Optimalerweise sollte der Benutzer sich dann mit einem Passwort identifizieren, um Zugang zu den gewünschten Seiten zu erhalten. Um eine solche Idee zu verwirklichen, gibt es mehrere Ansätze.
So gibt es z.B. die Möglichkeit, seine Seiten mit JavaScripts zu schützen. Viele Webmaster lehnen JavaScript aber aus Prinzip ab, und sei es nur, weil viele Surfer aus Sicherheitserwägungen das Scripting deaktivieren. Oder die .htaccess-Lösung: im zu schützenden Verzeichnis wird eine bestimmte Datei angelegt, in der das Passwort für den Zugriff steht.
Wem das alles zu kompliziert ist oder wer z.B. direkt mit einer User-Datenbank arbeiten will, für den bietet sich die Überprüfung der Benutzer mit Perl an. Das Konzept ist einfach: ein Benutzer authentifiziert sich zunächst über ein Formular, dann wird er zum entsprechenden Artikel weitergeleitet. Wichtig ist dabei, dass das Script selbst den Artikel ausliefern muss.
Die Vorteile einer Perl-Lösung gegenüber der .htaccess? Mit Perl ist es z.B. recht einfach möglich, komplexe logische Bäume zu verwalten. Beispiel: "Benutzer A hat Zugriff auf Artikel B, aber nur, wenn er vorher Artikel C gelesen hat und sich beim Formular 1 als User angemeldet hat".
Ein (sehr einfach gestricktes) Beispiel für ein einfaches Script:
#!/usr/local/bin/perl -w
use strict;
use CGI;
my $cgi = new CGI;
my $username = $cgi->param("username"); my $pw = $cgi->param("pw");
# User-Hash auslesen my %user = %{&UserDB};
print "Content-type: text/html\n\n";
# User überprüfen unless ($user{$username} && $user{$username} eq $pw) { print "Kein Zugang!"; exit; }
# Welchen Artikel will der Benutzer? my $artikel = $cgi->param("artikel");
# Artikel auslesen ... und ausgeben my $artikel_text = &GetArtikel($artikel); print $artikel;
exit;
sub UsersDB { my %users = ( UserA => "pw1", UserB => "pw2", ); return \%users; }
sub GetArtikel { my $artikel = shift; # Hier: Artikel sind im Code eingebettet # Es wäre aber auch möglich, an dieser Stelle eine Datei # einzulesen if ($artikel eq "art1") { my $text = qq( Das hier ist Artikel 1! ); return $text; } else { return "Artikel nicht vorhanden"; } }
Das Authentifizierungs-Formular könnte dann diesen Code haben:
<form action="/cgi-bin/artikel.pl" method="post"> Benutzername: <input type="text" name="username"><br> Passwort: <input type="text" name="pw"><br> Artikel: <select name="artikel"> <option value="art1" SELECTED>Artikel 1</option> <option value="art2">Artikel 2</option> </select> </form>
|
 |
|
|
Sie wollen diese Seite ausdrucken? Dafür haben wir eine spezielle Druckversion ohne grafische Elemente entwickelt! |
|
|
Einführung in CSS bei HTMLWorld.
|
|