Hallo,
hatte mal einen Passwortschutz mit SID der auch funzte.
Template wurde aber versehentlich gelöscht *oh schreck*, jetzt versuche ich Ihn nochmal zu bauen. Aber da steckt noch ein Fehler drin.
Hier der Code:
<perl>
# Das hier ist wichtig, damit man nicht mit * als Platzhalter die PW-Abfrage austrickst oder die SID-Prüfung
$sid=~s/^( |\*)//;
$pwrein=~s/^( |\*)//;
$namerein=~s/^( |\*)//;
$LoginErfolreich = 0;
if($namerein ne "") {
get "Name==!$namerein","nutzer";
if($Passwort ne "" && $Passwort eq $pwrein) {
# Login erfolreich
$sid = SIDErzeugen();
mod "Name==!$namerein", "SID, $sid, SIDDatum, datum("jetzt", "intern")", "nutzer";
$LoginErfolreich = 1;
}
}
elsif ($sid ne "") {
# TimeOut von 15 Minuten
get "SID==$sid&SIDDatum>=-0,0:15", "nutzer";
if ($_amount == 1) {
mod "SID==$sid", SIDDatum, datum("jetzt", "intern")", "nutzer";
$LoginErfolreich = 1;
}
}
if ($LoginErfolgreich == 1) { # Hier der Text für erfolreichen Login
# Hier der Text für erfolreichen Login
Hallo Welt!
} else { # Hier der Text für fehlgeschlagenen Login
out "<b>Ihre Anmeldung ist fehlgeschlagen!</b><br><br>";
$namerein="";
}
}
if($namerein eq "")
{
out <<EOF;
Anmelden:
<form action="/cgi-bin/baseportal.pl?htx=/dcjw/login_prüfung" 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
}
</perl>
Und da war dann noch folgender Schnipsel:
#
sub SIDErzeugen {
my $timestamp = datum("jetzt", "Tag Monat Jahr Stunde Minute Sekunde");
$timestamp =~ s# ##g;
my @chars = ("a".."z", 0..9, 0..9, 0..9);
my $temp = join("", @chars[ map { rand @chars } (1..20)]);
my $sid = "";
for (my $i = 0; $i < length($timestamp); ++$i) {
$sid .= substr($timestamp, $i, 1) . substr($temp, $i, 1);
}
$sid .= substr($temp, $i);
return $sid;
}
#
Komme leider nicht weiter damit. Der Code stammte mal von Olaf.
Kann jemand helfen? CB? Sander?
Danke an alle!