Re: Parameterübergabe und Passwortabfrage - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Dienstag, 20.Januar.2004, 20:22.
    Re: Parameterübergabe und Passwortabfrage

      Axo - jetzt versteh ich erst was du machen willst...
      nee - logo, dass er dir nicht den Datensatz anzeigt, du musst die Id mit im Link übergeben und dann brauchts den Parameter für die DB ja gar nicht (nagut, es sei denn, du willst das Template "universell" nutzen)
      Wichtig immer drauf achten, dass mögklichst keine Parameter, Feldvariablen und Variablen so wie ein bp-interner Parameter, Befehl oder Funktion heissen - da wäre also auch der Parameter "db" nicht günstig....

      Also, im Template1 baust du den Link im Loop oder get-while(get_next) mit der Id zusammen, in etwa so: (das geht definitiv nicht mit do action oder do all!)

      <loop db=datenbankname>
      
      ... irgendwelche html-sachen zur Ausgabe ...
      <a href=http://baseportal.de/cgi-bin/baseportal.pl?htx=...template2&dbf=datenbankname&dsnr=$_id>
      ... weitere html-sachen
      </loop>
      
      dann im Template2
      ...
      do_all "db=$dbf Id==!$dsn listtype=all listfields=... formfields=...", "namerein", "pwrein";
      
      ...
      so müsste es eigentlich funzen....
      Ruben


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Peter (141 Beiträge) am Dienstag, 20.Januar.2004, 14:31.
    Parameterübergabe und Passwortabfrage

      Als völliger Perl-Neuling bin ich fast am verzweifeln...
      Möchte über einen Link aus einem Template ("template1") mit Parameterübergabe ein Eingabetemplate ("template2") mit Passwortabfrage öffnen, bei dem - bei richtigem Passwort - ein entsprechend der Parameterübergabe ausgefilterter Datensatz zur Bearbeitung geöffnet wird.

      Die Parameterübergabe im Link von "template1" sieht so aus :
      <a href=http://baseportal.de/cgi-bin/baseportal.pl?htx=...template2&db=datenbankname&Indexfeld==$Indexfeld>
      

      Der Code im "template2" sieht so aus:
      <perl>
      if($namerein ne "")
      {
        get "Name==!$namerein", "nutzer";
        if($Passwort ne "" && $Passwort eq $pwrein)
        {
          if (%_put && $cmd eq "mod")
          {
            get "Id==!$Id","$db";
            map {$_loop{$_}=$_put{$_}} keys(%_put);
            %_put=%_loop;
          } 
        do_all "db=datenbankname Indexfeld==$Indexfeld listtype=all listfields=... formfields=...", "namerein", "pwrein";
        } else
        {
          out "<b>Fehler bei Anmeldung!</b><br>Eventuell haben Sie kein Zugriffsrecht";
          $namerein="";
        }
      }
      

      if($namerein eq "")
      {
      out <<EOF;
      <h2>Anmeldung</h2>Bitte anmelden:
      <form action="http://baseportal.de/cgi-bin/baseportal.pl?htx=...template2" 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>
      

      Leider werden die nach do_all "db=..." Parameter zum Filtern nicht mit übergeben, so daß nicht der entsprechende DS angezeigt wird. Muß man die Parameter anders übergeben?

      Peter

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Dienstag, 20.Januar.2004, 16:43.
    Re: Parameterübergabe und Passwortabfrage

      parameter sind schon richtig, nur dann nicht richtig im do_all eingesezt ;-)
      muss heissen:
      do_all "db=$db Indexfeld==$Indexfeld listtype=all listfields=... formfields=...", "namerein", "pwrein";
      
      Als Parameter(name) gilt der Name vor dem "=" in der URL und an diesen wird der Wert zugewiesen.... Die ans Template übergebenen Parameter stehen dann in der Variablen namens des übergebenen Parameters
      und die doppelte == - Zuweisung an den Parameter Indexfield ist hier auch nicht richtig, nur ein =

      hth
      Ruben

     Antworten

    Beitrag von Peter (141 Beiträge) am Dienstag, 20.Januar.2004, 17:35.
    Re: Parameterübergabe und Passwortabfrage

      Hallo Ruben,

      habe wie empfohlen die Einträge nach do_all wie folgt geändert "db=$db..." und bei der Parameterübergabe im Link des ersten Templates die "=="-Zuweisung in "=" geändert.
      Leider wird immer noch nicht der richtige DS angezeigt.
      Als $db in "db=$db ..." wird nun die Datenbank "nutzer" genommen (aus dieser db werden ja der Nutzername und das Passwort für die Passwortabfrage genommen). Der DS, der angezeigt werden soll steht aber in einer anderen db (im Beispiel "datenbankname"). Was mache ich falsch???

      Vielleicht zum besseren Verständnis: Der Inhalt des entsprechenden DS stammt aus einer DB (im Beispiel "datenbankname") und wird bereits im Beispieltemplate "template1" angezeigt und soll über einen zu klickenden Link zum Editieren mit vorheriger Passwortabfrage geöffnet werden. Nutzer und dazugehörige Passwörter sind in DB "nutzer" abgelegt.

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Dienstag, 20.Januar.2004, 20:22.
    Re: Parameterübergabe und Passwortabfrage

      Axo - jetzt versteh ich erst was du machen willst...
      nee - logo, dass er dir nicht den Datensatz anzeigt, du musst die Id mit im Link übergeben und dann brauchts den Parameter für die DB ja gar nicht (nagut, es sei denn, du willst das Template "universell" nutzen)
      Wichtig immer drauf achten, dass mögklichst keine Parameter, Feldvariablen und Variablen so wie ein bp-interner Parameter, Befehl oder Funktion heissen - da wäre also auch der Parameter "db" nicht günstig....

      Also, im Template1 baust du den Link im Loop oder get-while(get_next) mit der Id zusammen, in etwa so: (das geht definitiv nicht mit do action oder do all!)

      <loop db=datenbankname>
      
      ... irgendwelche html-sachen zur Ausgabe ...
      <a href=http://baseportal.de/cgi-bin/baseportal.pl?htx=...template2&dbf=datenbankname&dsnr=$_id>
      ... weitere html-sachen
      </loop>
      
      dann im Template2
      ...
      do_all "db=$dbf Id==!$dsn listtype=all listfields=... formfields=...", "namerein", "pwrein";
      
      ...
      so müsste es eigentlich funzen....
      Ruben

     Antworten

    Beitrag von Peter (141 Beiträge) am Freitag, 23.Januar.2004, 14:06.
    Re: Parameterübergabe und Passwortabfrage

      erstmal danke für die antwort. habe erst heute testen können...
      leider zeigt er mir mit dieser lösung auch nicht das gewünschte resultat.
      als db in do_all "" wird nicht die datenbank wie angegeben geöffnet (db=$dbf) sondern einträge aus der datenbank "nutzer" (die mit den passwörtern).
      scheinbar werden die werte für db in do_all "" nicht berücksichtigt und als "aktive" datebank die nutzer-datenbank genommen.
      kurioserweise kann ich aber einen konkreten ds herausfiltern, wenn ich im im template2 vor der passwort-if-schleife in einer variablen ein filterkriterium fetslege (also $VAR="müller";) und in do_all den konkreten parameter für db angebe (also do_all "db=adressen ...").
      keine ahnung, was ich noch versuchen soll...

      habe mich deswegen deinem beispiel in der bibliothek zugewandt (administratorrechte für verschiedene orte).

      1) leider kriege ich auch hier nicht das was ich erwartete. ich dachte, dass bei erfolgreicher anmeldung nur die entsprechenden einschränkungen passenden datensätze aufgelistet werden. statt dessen werden alle veranstaltungen in allen orten aufgelistet - völlig egal, für welche orte ich administratorrechte habe.

      2) wofür steht im admintest-template in do_all der eintrag "$suchf"? (bin in sachen perl leider immer noch nahezu blind)

     Antworten

    Beitrag von Claus (4645 Beiträge) am Freitag, 23.Januar.2004, 16:36.
    Re: Parameterübergabe und Passwortabfrage

     Antworten


     
 Liste der Einträge von 32400 bis 32550:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.16s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!