hallo zusammen,
habe versucht den passwort-zugang vom claus aus der bib etwas umzubauen. funktioniert nicht so ganz. vorallem bin ich mir nicht sicher, wie sicher das ganze ist. wollte die usid mit einbauen. aber irgendwie wird nicht alles sauber verarbeitet. es wird auch die dbnutzer nur bei nutzer_lastvisit_datum geschreiben, bei nutzer_rolle und nutzer_usid bleiben die felder leer.
hier mal der code
<perl>
############### Eingabe des Benutzername & Passwort
out "<TABLE WIDTH='800' CELLPADDING='2' CELLSPACING='2' BORDER='0' ALIGN='CENTER'>";
out "<tr><td width='800' colspan='5' align='center'><FORM ACTION='http://unifit-daten.de/cgi-bin/baseportal.pl?htx=$htx' METHOD='post' ENCTYPE='multipart/form-data'>";
out "<input type='hidden' name='namerein=' value='$namerein'></input>";
out "<input type='hidden' name='passwortrein=' value='$passwortrein'></input>";
out "<INPUT TYPE='TEXT' NAME='namerein=='><INPUT TYPE='PASSWORD' NAME='passwortrein=='>";
out "<INPUT TYPE='submit' VALUE='Anzeigen' CLASS='schrift2a' STYLE='background-color:#00315A; color: white; font-size: 8pt'></FORM>";
out "</td></tr></table>";
############## wird auch als namerein & passwortrein übernommen und einlass gewährt
get "Name==!$namerein", "nutzer";
if($Passwort ne "" && $Passwort eq $passwortrein)
{
#################---hier wird die session-id generiert----- jetzt kommt der eigentliche teil vom Claus#
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)= gmtime(time);
$usid_aktuell = (1000000*$year)+(10000*$mon)+(100*$mday)+(4*$hour)+$min ;
#------hier wird beim logout die aktuelle session-id gelöscht------#
if($logout=1)
{
mod "Name==$namerein", ["nutzer_usid", ""], "nutzer";
}
if($namerein ne "" && $usid ne "")
{
out "<!-- test, ob aktuelle session-id noch gültig ist -->";
}
get "Name==$namerein", "nutzer";
### hier stellt man die Zeit ein, ab wann der Zugang bei Untätigkeit des jeweiligen users gesperrt wird (in diesem Fall 2 Minuten)
$usid_max = $usid+1;
if($usid eq $nutzer_usid && $usid_aktuell <= $usid_max)
{
out "<!-- session-id ist gültig - session-id wird aktualisiert -->";
mod "Name==$namerein", ["nutzer_usid", $usid_aktuell], "nutzer";
$usid=$usid_aktuell;
}
#----------- Ab hier kommt alles rein, was nach dem Login gemacht werden darf #
### und es werden die aktuellen werte versucht auszugeben, wobei nur usid_aktuell was enthält
out "<br><br>\$usid $usid <br> \$nutzer_usid $nutzer_usid <br> \$usid_aktuell $usid_aktuell";
out"<br><br><a href=http://unifit-daten.de/cgi-bin/baseportal.pl?htx=$htx&Name=$namerein&logout=1><b><font face=Arial, Helvetica, sans-serif color=d80000>LOGOUT</font></b></a><br><br>";
}
else
{
out "<TABLE WIDTH='800' CELLPADDING='2' CELLSPACING='2' BORDER='0' ALIGN='CENTER'>";
out "<tr><td width='800' colspan='5' align='center' STYLE='background-color:#00315A; color: white; font-size: 8pt'>Leider kein Zugang ! oder melden Sie sich an !</td></tr></table>";
}
</perl>
hier mal die url
http://de2.unifit-daten.de/cgi-bin/baseportal.pl?htx=/unifit-daten.de/cravaack/test_zugang
benutzer/pass = test/test
sebastian