ich hab jetzt noch das beispiel von Ruben "PASSWORTABFRAGE mit NUTZER DB ergänzte Variante" ausprobiert und man sehe und staune es funktioniert beinahe.
folgendes problem: man kann sich mit einem passwort einloggen (name Ken / passwort ken1) - es werden die daten aufgelistet. soweit so gut. wenn man allerdings einen der datensätze über den link aufrufen will - springt man wieder zum anmeldeformular.
da scheint was in der ausgabe hinsichtlich do all (do action all) was nicht zu stimmen - kann mir da jemand helfen?
<html><head><title>baseportal Datenbank (admintest)</title>
<script language="JavaScript">
<!--
function form_check ()
{
if (document.forms[0].elements[2].value == "")
{
alert("Bitte Nutzername eingeben!");
document.forms[0].elements[2].focus();
return false;
}
if (document.forms[0].elements[3].value == "")
{
alert("Bitte Passwort eingeben!");
document.forms[0].elements[3].focus();
return false;
}
}
//-->
</script>
</head><body bgcolor=ffffef>
<br>
<perl>
#----Frage ob Eingabefeld Name nicht leer ist
if($namerein ne "")
{
#---wenn das der Fall ist, dann Namen aus DB Nutzer holen
get "Name==!$namerein", "Freizeit_V2_passwort";
#-----Frage, ob Paßwort eingegeben wurde und ob Paßwort richtig ist
#---? wo kommt die Variable bloß her?
if($Passwort ne "" && $Passwort eq $pwrein)
{
$_link.="&namerein=$namerein&pwrein=$pwrein";
@_params=("htx", "db", "cmd", "namerein", "pwrein", "range");
#---Tabelle für Anzeige der (Listen)-Ausgabe festlegen
out "<table width=530 border=1><tr><td>";
#---Äquivalent zu do <action=all> mit den Parametern für das Aussehen
do_all "db=Freizeit_V2_passwort border=0 gridcolor=ffffff spacing=2 dataface=Arial datasize=2 databack=ffffef dataalign=left headcolor=006600 headalign=middle headback=ccff66 headalign=middle range^=0,6 pagebrowse=top buttonbrowse=top listtype=list input=no sort=Datum,Landkreis,Ort listfields=Aktivität*,Kurzbeschreibung*,Suche,Alter,Ort";
"do action=all range^=0,20 pagebrowse=no buttonbrowse=top,bottom listtype=list listfields=Aktivität\ *,Kurzbeschreibung\ *,Suche\ *,Alter\ *,Stadt\ input=link>
<searchfields=Aktivität*,Kurzbeschreibung* Suche,Alter, Stadt*, Grossraum,Sternzeichen";
#---Abschließen der Tabelle für die (Listen)-Ausgabe
out "</td></tr></table>";
}
#----Ende des if-Zweiges wenn Paßwort eingegeben und richtig
#----Nun folgt das, was passiert wenn Paßwort nicht eigeg. wurde und/oder falsch ist
else
{
#----Ausgabe mit der Meldung, daß was falsch war
out "<div align=left><h3><font face=Arial,Helvetica,sans-serif><font color=red>Anmeldung fehlgeschlagen!</font></font></h3>";
#----Feld Anmeldenamen wird geleert, damit neue Anmeldung losgehen kann
$namerein="";
#---Zähler für Anzahl Anmeldeversuche - auf 3 gesetzt
if ($cnt eq 3)
{
#---Schriptausgabe mit Sprung zu anderem Template, wenn 3 erfolglose Anmeldevers.
out '<script>';
out ' document.location="http://baseportal.de/cgi-bin/baseportal.pl?htx=/hempelr/verans_kirch/test_list"';
out '</script>';
}
#---Ende der Zählerabfrage
}
#------Ende des else-Zweiges für falsches/fehlendes Paßwort
}
#------Ende der Abfrage von Nutzername und Paßwort
if($namerein eq "")
#---Wenn kein Nutzername angegeben wurde(oder 1. Aufruf der Seite)
{
out <<EOF;
<!-----Ausgabe bis zur Zeichenfolge EOF -->
<table width=430 border=1 bordercolordark=006600 bordercolor=00ff00>
<!----Tabelle für das Anmeldeformular und den "beschreibenden Schnickschnack" -->
<tr>
<td bgcolor=ccffcc><div align=center><font face=Arial,Helvetica,sans-serif>
<h2><font color=006600>Anmeldung</h2><p>Um mehr zu sehen gilt es sich, anzumelden<br>Bitte melden Sie sich an:</p><p style="font:8pt">(Der Nutzername für die Demonstration ist "Ken", das Passwort "ken1"<br>jeder kann in der Datenbank "rumäppeln", ist extra für Testzwecke da!)<br><br>Stefan Krupop hat mir mal noch nen Zähler gebastelt,der max. 3 Fehlversuche bei der Anmeldung zulässt. Danke Stefan, haut hin!</font></p></font></font>
EOF
#---Ausgabe der Anzahl "freier" Versuche zur Anmeldung
out '<p style="font:8pt">Verbleibende Versuche: ',3-($cnt++), '</p>';
if ($cnt gt 3)
{
#---Schriptausgabe mit Sprung zu anderem Template, wenn 3 erfolglose Anmeldevers.
out '<script>';
out ' document.location="http://baseportal.de/cgi-bin/baseportal.pl?htx=/hempelr/verans_kirch/test_list"';
out '</script>';
}
#---- Ausgabe des Anmeldeformulares
out <<EOF;
<!-----Ausgabe bis zur Zeichenfolge EOF, hier jetzt das Anmeldeformular als solches -->
<form action="/cgi-bin/baseportal.pl?htx=$htx" method="post" enctype="multipart/form-data" onSubmit="return form_check()">
<input type=hidden name="htx=" value="$htx">
<input type=hidden name="cnt=" value="$cnt">
</td></tr>
<tr><td>
<div align=center>
<table>
<tr><td style="font:8pt Arial,Helvetica">Name:</td><td style="font:8pt Arial,Helvetica"><input type="text" name="namerein="></td></tr>
<tr><td style="font:8pt Arial,Helvetica">Passwort:</td>
<td><input type="password" name="pwrein="></td></tr>
<tr><td></td><td><div align=center><input type=submit value="Anmelden"></div></td></tr>
</table></form>
</table>
</td></tr>
</div>
EOF
}
thanx RON