Beitrag von Tim (10 Beiträge) am Mittwoch, 13.März.2013, 18:34.
Passwortbereich 1/2 Problem
Hallo,
ich versuche mich gerade an einem Passwortbereich.
Nach Login soll mir Links angezeigt werden, die in der DB "zugriff" stehen.
Auch nur die mit einer 1 im Feld "Recht".
Grundsätzlich klappt das auch, es wird mir aber immer nur 1 Datensatz angezeigt und nicht alle.
Danke
Tim
if($namerein ne "")
{
get "Login==!$namerein", "nutzer";
if($Passwort ne "" && $Passwort eq $pwrein)
{
get "", "zugriff";
if($Recht ne 1)
{
out<<EOF;
<a href='/cgi-bin/baseportal.pl?htx=/$Link&cmd=do_list&namerein=$namerein&pwrein=$pwrein'> $Bereich</a><br>
EOF
}
} else
{
out "<b>Anmeldung fehlgeschlagen!</b>";
$namerein="";
}
}
out <<EOF;
<form action="/cgi-bin/baseportal.pl?htx=/admin" method="post" enctype="multipart/form-data">
<input type=hidden name="namerein=" value="$namerein">
<input type=hidden name="pwrein=" value="$pwrein">
Login: <input type="text" name="namerein="><br>
Passwort: <input type="password" name="pwrein="><br>
<input type=submit value="LOGIN">
</form>
</perl>
Antworten
Beitrag von markus (1013 Beiträge) am Mittwoch, 13.März.2013, 18:54.
Re: Passwortbereich 1/2 Problem
Antworten
Beitrag von Tim (10 Beiträge) am Mittwoch, 13.März.2013, 20:13.
Re: Re: Passwortbereich 1/2 Problem
Danke! Das war`s.
Ich habe aber noch ein Problem.
Ich möchte, abhängig von einem DB Eintrag in der DB "zugriff" verschiedenen do_all ausgeben. Mit einem klappte es, aber wenn ich mehrere versuche, nicht.
Tim
###################################
EOF
out "<div class='accordion'> ";
get "sort=Id", "zugriff";
while(get_next("zugriff"))
{
out<<EOF;
<div class="acc"><a href="#" class="tog"><span class="cmsms_plus"><span class="cmsms_plus_inner"><span class="vert_line"></span><span class="horiz_line"></span></span></span>$Bereich</a><div class="tab_content" style="display:none;">
if ($Link} eq "template1") {
do_all "db=db1 action=all";
}
if ($Link} eq "template2") {
do_all "db=db2 action=all";
}
out <<EOF;
Antworten
Beitrag von Markus (0 Beiträge) am Donnerstag, 14.März.2013, 07:47.
Re: Re: Re: Passwortbereich 1/2 Problem
Sollte "if ($Link}" nicht "if ($Link)" sein?
Antworten
Beitrag von Markus (0 Beiträge) am Donnerstag, 14.März.2013, 07:54.
Re: Re: Re: Re: Passwortbereich 1/2 Problem
Antworten
Beitrag von Tim (10 Beiträge) am Donnerstag, 14.März.2013, 09:19.
Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Vielen Dank :-)
Soweit klappt es auch, dank eurer Hilfe.
Ich bin mit meinem Latein am Ende und würde mich über eure Unterstützung freuen. Die Lösung wäre sicher auch für andere interessant.
Ich möchte gerne eine Administration mehrerer Datenbanken über ein Template realisieren.
Ich habe eine nuterdb mit dem Felder Login, Passwort, Bereich und Link
und die zu administrierenden.
Nach dem Login soll links die Links stehen (Feld "Bereich") und über das Feld "Link" soll die zu administrierende DB in der Mitte angezeigt werden.
Login klappt, Bereiche werden links angezeigt.
Die Links klappen aber nicht und in der Mitte werden alle DB`s angezeigt
und wenn ich z.B. auf "neu" klicke, wird das bei jeder DB gemacht.
Hier mal mein Template.
Danke
Tim
<!-- __________________________________________________ Start Content -->
<div class="content_wrap sidebar_left"><section id="content" class="fr"><div class="entry">
<div class="cmsms-form-builder">
<perl>
if($namerein eq "")
{
out <<EOF;
<!-- Das Form für den Login -->
<form action="/cgi-bin/baseportal.pl?htx=/login" method="post" enctype="multipart/form-data">
<input type=hidden name="namerein=" value="$namerein">
<input type=hidden name="pwrein=" value="$pwrein">
Login: <input type="text" name="namerein="><br>
Passwort: <input type="password" name="pwrein="><br>
<input type=submit value="LOGIN"><br>
</form>
<!-- Prüfung Logindaten -->
if($namerein ne "")
{
get "Login==!$namerein", "nutzerdb";
if($Passwort ne "" && $Passwort eq $pwrein)
{
get "sort=Id", "nutzerdb";
while(get_next("nutzerdb"))
{
<!-- Je nachdem welcher Link angeklickt wird, soll die DB erscheinen -->
if ($Link eq "test1") {
do_all "db=test1 action=all listtype=list input=link", "namerein", "pwrein";
}
if ($Link eq "test2") {
do_all "db=test2 action=all listtype=list input=link", "namerein", "pwrein";
}
EOF
}
out <<EOF;
</div></div></section>
<!-- __________________________________________________ Finish Content -->
<!-- __________________________________________________ Start Sidebar -->
<section id="sidebar" class="fl"><div class="one_first"><aside class="widget widget_custom_advertising_entries">
<!-- Die Links an der Seite, klick ich drauf, werde ich rausgeschmissen-->
EOF
get "sort=Id", "nutzerdb";
while(get_next("nutzerdb"))
{
out <<EOF;
<a href="/cgi-bin/baseportal.pl?htx=/login&Link==$Link&Login==$namerein&Passwort==$pwrein">$Bereich</a><br>
EOF
}
}
} else
{
out "";
$namerein="";
}
</aside></div></section>
<!-- __________________________________________________ Finish Sidebar -->
Antworten
Beitrag von Markus (0 Beiträge) am Donnerstag, 14.März.2013, 10:08.
Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Antworten
Beitrag von richard (1187 Beiträge) am Donnerstag, 14.März.2013, 12:30. WWW: posaunenchor-rhoden.de
Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Antworten
Beitrag von Tim (10 Beiträge) am Donnerstag, 14.März.2013, 12:32.
Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Danke, hatte ich schon festgestellt.
War doppelt gemoppelt.
Antworten
Beitrag von richard (1187 Beiträge) am Donnerstag, 14.März.2013, 12:53. WWW: posaunenchor-rhoden.de
Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Nur doppelt wäre unproblematisch. Es waren aber unterschiedliche Abfragen.
Wie sieht denn jetzt Dein Code aus. Was funktioniert - was nicht.
Ein Link zu Deiner Seite wäre sinnvoll.
Antworten
Beitrag von Tim (10 Beiträge) am Donnerstag, 14.März.2013, 13:46.
Re: Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Hallo Richard,
hier mal Links zur Veranschaulichung.
Nach Login kommen die Links zwar auf der linken Seite, aber
wenn ich drauf gehe, kommt eben nicht die jeweilige DB.
Danke
Tim
Adminseite
http://baseportal.de/cgi-bin/baseportal.pl?htx=/timtaler/login
Login & Passwort: 1
Test DB 1
http://baseportal.de/cgi-bin/baseportal.pl?htx=/timtaler/test1
Test DB 2
http://baseportal.de/cgi-bin/baseportal.pl?htx=/timtaler/test2
Nutzer DB
http://baseportal.de/cgi-bin/baseportal.pl?htx=/timtaler/nutzerdb
######################################
So sieht mein Code aktuell aus:
##############################################################
<perl>
if($namerein eq "")
{
out <<EOF;
<form action="/cgi-bin/baseportal.pl?htx=/timtaler/login" method="post" enctype="multipart/form-data">
<input type=hidden name="namerein=" value="$namerein">
<input type=hidden name="pwrein=" value="$pwrein">
Login: <input type="text" name="namerein="><br>
Passwort: <input type="password" name="pwrein="><br>
<input type=submit value="LOGIN"><br>
</form>
EOF
}
if($namerein ne "")
{
get "Login==!$namerein", "nutzerdb";
if($Passwort ne "" && $Passwort eq $pwrein)
{
while(get_next("nutzerdb"))
{
if ($Link eq "test1") {
do_all "db=test1 action=all listtype=list input=link", "namerein", "pwrein";
}
if ($Link eq "test2") {
do_all "db=test2 action=all listtype=list input=link", "namerein", "pwrein";
}
EOF
}
out <<EOF;
</div></div></section>
<!-- __________________________________________________ Finish Content -->
<!-- __________________________________________________ Start Sidebar -->
<section id="sidebar" class="fl"><div class="one_first"><aside class="widget widget_custom_advertising_entries">
EOF
while(get_next("nutzerdb"))
{
out <<EOF;
<a href="/cgi-bin/baseportal.pl?htx=timtaler/login&Link==$Link&Login==$namerein&Passwort==$pwrein">$Bereich</a><br>
EOF
}
} else
{
out "Anmeldung fehlgeschlagen";
$namerein="";
}
</perl>
###############################################################
Antworten
Beitrag von richard (1187 Beiträge) am Donnerstag, 14.März.2013, 14:40. WWW: posaunenchor-rhoden.de
Re: Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Antworten
Beitrag von Tim (10 Beiträge) am Donnerstag, 14.März.2013, 15:21.
Re: Re: Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Antworten
Beitrag von richard (1187 Beiträge) am Donnerstag, 14.März.2013, 15:56. WWW: posaunenchor-rhoden.de
Re: Re: Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Nach dem Abschicken des Formulars sind alle Bedingungen erfüllt, weil die abgefragten Variablen entweder durch das Formular übergeben und mit passenden Werten belegt sind oder diese Variablen durch die Datenbankabfrage erstellt und gefüllt werden. Deshalb werden beide Datenbanken angezeigt.
Die linken Links übergeben aber keine Werte für die Variablen $namerein und $pwrein. Damit findet keine Anmeldung statt und es wird auch keine Datenbankabfrage gestartet. Weil keine der Bedingungen in Deinem Perl-Code erfüllt ist. Eventuell hast Du $namerein mit Login und $pwrein mit $Passwort verwechselt?
Antworten
Beitrag von Claus (4645 Beiträge) am Donnerstag, 14.März.2013, 17:57. WWW: hammoniaweb.com
Re: Re: Re: Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Du hast da so viel Unfug und unausgegorenem Kram drin, da sträuben sich einem ja sämtlich Haare...;)
Mal ganz abgesehen davon, es weiß keiner wo Deine Daten eigentlich alle herkommen....
Hier mal ein Testlink auf die Schnelle:
http://baseportal.de/cgi-bin/baseportal.pl?htx=/Juergens/pwxx/adressen95
Zugang: test/test
Wie gesagt, nur mal auf die Schnelle ohne logout usw....
Gruesse
Claus
Antworten
Beitrag von Tim (10 Beiträge) am Donnerstag, 14.März.2013, 18:22.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Hallo Claus,
wo meine Daten herkommen ist eigentlich ersichtlich.
Wäre ich ein Perl-Profi, wäre ich auch nicht hier.
Wenn ich deine Passwortlösung aus der BIB nehme, kann ich
nur 1 DB administrieren.
Ich habe nach einer Lösung gesucht, um über 1 Template mehrer DB`s
zu administrieren, unabhängig von der Struktur der Einzelnen.
Das ist sicher auch für andere User interessant, wenn man bedenkt,
dass die Templateanzahl bei den kleinen Mietpaketen recht gering ist.
Grundsätzlich scheint deine auf-die-schnelle-Idee das zu sein.
Ich würde mich freuen, wenn ich und auch andere daran teilhaben dürften.
Vielen Dank & Grüße
Tim
Antworten
Beitrag von Claus (4645 Beiträge) am Donnerstag, 14.März.2013, 18:39. WWW: hammoniaweb.com
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Falscher Ansatz...;)
Das Problem sind allenfalls die Beschränkungen bei der Datenbank-Anzahl. Templates kann man in einer DB bequem zusammenfassen und über die jeweilige Id aufrufen...;)
Selbst bei dem kleinsten Mietpaket hast Du 20 Templates, aber nur 10 Db's...
Falls du mit dem Quelltext was anfangen kannst, kein Problem:
<perl>
if($namerein eq "")
{
out <<EOF;
<form action="http://baseportal.de/cgi-bin/baseportal.pl?htx=/Juergens/pwxx/adressen95" method="post" enctype="multipart/form-data">
<input type=hidden name="htx=" value="/Juergens/pwxx/adressen95">
<input type=hidden name="namerein=" value="$namerein">
<input type=hidden name="pwrein=" value="$pwrein">
Login: <input type="text" name="namerein="><br>
Passwort: <input type="password" name="pwrein="><br>
<input type=submit value="LOGIN"><br>
</form>
EOF
}
if($namerein ne "")
{
get "nutzer_name==!$namerein", "nutzerdb";
if($nutzer_passwort ne "" && $nutzer_passwort eq $pwrein)
{
while(get_next("nutzerdb"))
{
if ($Link eq "adressen1" && $etr eq "1") {
do_all "db=adressen1 listtype=list input=link formfields=-verantwortlich listfields=-verantwortlich", "namerein", "pwrein","etr","adressen1";
}
if ($Link eq "adressen2" && $etr eq "2") {
do_all "db=adressen2 listtype=list input=link formfields=-verantwortlich listfields=-verantwortlich", "namerein", "pwrein","etr","adressen2";
}
EOF
}
out <<EOF;
</div></div></section>
<!-- __________________________________________________ Finish Content -->
<!-- __________________________________________________ Start Sidebar -->
<section id="sidebar" class="fl"><div class="one_first"><aside class="widget widget_custom_advertising_entries">
EOF
while(get_next("nutzerdb"))
{
$etrx1++;
out <<EOF;
<a href="http://baseportal.de/cgi-bin/baseportal.pl?htx=/Juergens/pwxx/adressen95&Link=$Link&namerein=$namerein&pwrein=$pwrein&etr=$etrx1">$Bereich</a><br>
EOF
}
} else
{
out "Anmeldung fehlgeschlagen";
$namerein="";
}
}
</perl>
Solchen Kleinkram mache ich mal in der Zigarettenpause...;)
hth
Viel Spaß damit, aber anpassen mußt du das schon selbst...;)
Gruesse
Claus
Antworten
Beitrag von Tim (10 Beiträge) am Donnerstag, 14.März.2013, 19:30.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Da hab ich jetzt Dein Leben verlängert, weil Du eine Zigarettenpause geopfert hast. Du solltest mir danken :-)
Vom technischen her passt es, jetzt muss ich das ganze noch chic machen :-)
Danke und schönen Abend!
Tim
Antworten
Beitrag von Claus (4645 Beiträge) am Donnerstag, 14.März.2013, 19:53. WWW: hammoniaweb.com
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Ich habe nicht gesagt, daß ich auf die Zigarette verzichtet habe.
Solchen Pippifax mache ich innerhalb der Zeit, die ich für eine Zigarette benötige. dabei entspanne ich mich, um wieder die Energie für die wichtigen und komplexen Dinge zu schöpfen....;)
Klar klappt das technisch, Kosmethik ist dann individuelle Angelegenheit, wäre für kostenlos ja auch etwas viel verlangt...;)
Ansonsten, keine Ursache, wie gesagt, Kleinkram...
Gruesse
Claus
Antworten
Beitrag von Sandra (32 Beiträge) am Mittwoch, 12.Juni.2013, 07:58.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Hallo Claus,
ich wollte das mit den mehrere Datenbanken über ein Template gerne nutzen, ist das OK?
Ich bin jetzt keine Perl-Spezialistin.
Geht das denn auch, wenn in der einen DB nur geändert werden darf und in der anderen darf man auch löschen?
Danke
Sandra
<perl>
if($namerein eq "")
{
out <<EOF;
<form action="http://baseportal.de/cgi-bin/baseportal.pl?htx=/Juergens/pwxx/adressen95" method="post" enctype="multipart/form-data">
<input type=hidden name="htx=" value="/Juergens/pwxx/adressen95">
<input type=hidden name="namerein=" value="$namerein">
<input type=hidden name="pwrein=" value="$pwrein">
Login: <input type="text" name="namerein="><br>
Passwort: <input type="password" name="pwrein="><br>
<input type=submit value="LOGIN"><br>
</form>
EOF
}
if($namerein ne "")
{
get "nutzer_name==!$namerein", "nutzerdb";
if($nutzer_passwort ne "" && $nutzer_passwort eq $pwrein)
{
while(get_next("nutzerdb"))
{
if ($Link eq "adressen1" && $etr eq "1") {
do_all "db=adressen1 listtype=list input=link formfields=-verantwortlich listfields=-verantwortlich", "namerein", "pwrein","etr","adressen1";
}
if ($Link eq "adressen2" && $etr eq "2") {
do_all "db=adressen2 listtype=list input=link formfields=-verantwortlich listfields=-verantwortlich", "namerein", "pwrein","etr","adressen2";
}
EOF
}
out <<EOF;
</div></div></section>
<!-- __________________________________________________ Finish Content -->
<!-- __________________________________________________ Start Sidebar -->
<section id="sidebar" class="fl"><div class="one_first"><aside class="widget widget_custom_advertising_entries">
EOF
while(get_next("nutzerdb"))
{
$etrx1++;
out <<EOF;
<a href="http://baseportal.de/cgi-bin/baseportal.pl?htx=/Juergens/pwxx/adressen95&Link=$Link&namerein=$namerein&pwrein=$pwrein&etr=$etrx1">$Bereich</a><br>
EOF
}
} else
{
out "Anmeldung fehlgeschlagen";
$namerein="";
}
}
</perl>
Antworten
Beitrag von Claus (4645 Beiträge) am Mittwoch, 12.Juni.2013, 09:14. WWW: hammoniaweb.com
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Passwortbereich 1/2 Problem
Hallo Sandra,
klar kannst Du das nutzen...;)
Zu der Frage nach den Rechten, angenommen in der DB1 ändern und löschen, dann alles so lassen, wenn bei DB2 nur ändern, dann mal probieren (ungetestet...):
<perl>
if($namerein eq "")
{
out <<EOF;
<form action="http://baseportal.de/cgi-bin/baseportal.pl?htx=/Juergens/pwxx/adressen95" method="post" enctype="multipart/form-data">
<input type=hidden name="htx=" value="/Juergens/pwxx/adressen95">
<input type=hidden name="namerein=" value="$namerein">
<input type=hidden name="pwrein=" value="$pwrein">
Login: <input type="text" name="namerein="><br>
Passwort: <input type="password" name="pwrein="><br>
<input type=submit value="LOGIN"><br>
</form>
EOF
}
if($namerein ne "")
{
get "nutzer_name==!$namerein", "nutzerdb";
if($nutzer_passwort ne "" && $nutzer_passwort eq $pwrein)
{
while(get_next("nutzerdb"))
{
if ($Link eq "adressen1" && $etr eq "1") {
do_all "db=adressen1 listtype=list input=link formfields=-verantwortlich listfields=-verantwortlich", "namerein", "pwrein","etr","adressen1";
}
if ($Link eq "adressen2" && $etr eq "2") {
$cmd="" if ($cmd eq "del"); ###hier wird der Löschbefehl abgefangen und neutralisiert
do_all "db=adressen2 cmd=$cmd listtype=list input=link formfields=-verantwortlich listfields=-verantwortlich", "namerein", "pwrein","etr","adressen2";
}
EOF
}
out <<EOF;
</div></div></section>
<!-- __________________________________________________ Finish Content -->
<!-- __________________________________________________ Start Sidebar -->
<section id="sidebar" class="fl"><div class="one_first"><aside class="widget widget_custom_advertising_entries">
EOF
while(get_next("nutzerdb"))
{
$etrx1++;
out <<EOF;
<a href="http://baseportal.de/cgi-bin/baseportal.pl?htx=/Juergens/pwxx/adressen95&Link=$Link&namerein=$namerein&pwrein=$pwrein&etr=$etrx1">$Bereich</a><br>
EOF
}
} else
{
out "Anmeldung fehlgeschlagen";
$namerein="";
}
}
</perl>
wie gesagt, ungetestet, sollte aber so funktionieren...;)
hth
Gruesse
Claus
Antworten