Re: do all bei Nutzerverwaltung - 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 Christoph Bergmann (8110 Beiträge) am Freitag, 3.August.2007, 19:15.
    Re: do all bei Nutzerverwaltung

      Also ich hab jetzt die weitergehende Diskussion mit Dir und Sander noch nicht ganz durchschaut, aber hier muss ich schonmal einhaken:

      > SEITE_A benötigt keine Absicherung. Für SEITE_B wird eine Userdatenbank angelegt. SEITE_B wird mit der Userdatenbank verknüpft, als alternativer Aufruf bei falscher Anmeldung erfolgt Aufruf von SEITE_A.
      

      Nach dem Komma ists falsch: Eigentlich sollte es reichen, wenn Du dort die Voreinstellung "[baseportal-Login]" lässt. Dann kriegst Du die Standard-baseportal-Anmeldeseite, die alles handlet. Nur wenn Du ein eigenes Design für diese Anmeldung haben willst, dann kannst Du eine eigene Anmeldeseite anlegen (dort muss irgendwo "out login" auftauchen) und diese stellst Du dann hier ein...

      Wenn Du SEITE_A einstellst, dann wird (wie Du ja verwundert feststellst ;-) ) sofort ohne Anmeldung SEITE_A aufgerufen, weil baseportal davon ausgeht dass dies Deine Anmeldeseite ist... ;-)


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von globo (31 Beiträge) am Mittwoch, 1.August.2007, 18:45.
    do all bei Nutzerverwaltung

      Hallo,

      wir haben unsere Datenbank in eine kleine Benutzerverwaltung eingebaut. Hier ist der Quellcode:

       <html><head><title>baseportal Datenbank</title>
       </head><body bgcolor=ffffff>
       <br><ul>
       
       <perl>
       
       if($namerein ne "")
       {
         get "Name==!$namerein", "nutzer";
       
         if($Passwort ne "" && $Passwort eq $pwrein)
         {
           do_all "localparams=+ db^=main range^=0,35 searchfields=Type,Brand,Model   
       listfields=DEALNO,Update,Type,Brand,Model,Quantity,MinOrder  
       allfields=-PriceInfo-intern,-Price_EUR,-AvailabSuppl-intern,
       -Details-internal showamount=all,sel selectbrowse=top 
       buttonbrowse=top,bottom pagebrowse=top,bottom indexbrowse=top border=0 
       spacing=1 gridcolor=FFFFFF dataface=Verdana datasize=1 databack=E0E0E0 
       databack2=F0F0F0 headface=Verdana headsize=2 headcolor=000000 
       headback=9999CC headalign=right listtype=list language=de detail=link 
       search=link input=no", "namerein", "pwrein";
         } else
         {
           out "<b>Anmeldung fehlgeschlagen!</b>";
           $namerein="";
         }
       }
       
       if($namerein eq "")
       {
       
       out <<EOF;
       
       <font face="Verdana, Arial, Helvetica, SansSerif" size="2">
       <b>Anmeldung</b><br>Bitte melden Sie sich an:</font>
       <form action="http://de3.netpure.de/cgi-bin/baseportal.pl?htx=$htx" 
       method="post" enctype="multipart/form-data">
       <input type=hidden name="htx=" value="$htx">
       <table>
       <tr>
          <td><font face="Verdana, Arial, Helvetica, SansSerif" size="2">
              Name:</font>
          </td>
          <td><input type="text" name="namerein=">
          </td>
       </tr>
       <tr>
         <td><font face="Verdana, Arial, Helvetica, SansSerif" size="2">
             Passwort:</font>
         </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 hier ist die Seite zum angucken:

      http://de3.netpure.de/cgi-bin/baseportal.pl?htx=/globoservice/registerpage_d

      (Zugang ist test/test)

      Fragen:

      1. Wieso klappt der Ausschluss von Feldern im "allfields"-Parameter nicht? Am minus im Namen kann es nicht liegen, da ja Price_EUR auch angezeigt wird ...

      2. Wie kann man die Aktion (Ändern/Löschen) ausschalten? Das ist in der Verwaltung der Datenbank entsprechend gesetzt, aber bringt nix, weil die Benutzer sind ja angemeldet. Aber sie sollen trotzdem nur schauen können ...

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Mittwoch, 1.August.2007, 19:17.
    Re: do all bei Nutzerverwaltung

      >1. Wieso klappt der Ausschluss von Feldern im "allfields"-Parameter nicht? Am minus im Namen kann es nicht liegen, da ja Price_EUR auch angezeigt wird ...
      

      Nur ein Minus am Anfang reicht. allfields=-PriceInfo-intern,Price_EUR,AvailabSuppl-intern, Details-internal
      (entweder man schliesst Felder aus, oder man gibt welche an)


      2. Wie kann man die Aktion (Ändern/Löschen) ausschalten? Das ist in der Verwaltung der Datenbank entsprechend gesetzt, aber bringt nix, weil die Benutzer sind ja angemeldet. Aber sie sollen trotzdem nur schauen können ...

      do_all aus perl darf alles, müsstest nicht nur die Tasten ausblenden sondern auch sperren bauen. Der Einfachheit wegen empfehle ich dir erstmal deine selbstgebastellte Benutzerverwaltung aufzugeben und die, von Version 3 zu benutzen.
      
      http://doku.baseportal.de/651.html
      Da ist das alles schon inclusive

     Antworten

    Beitrag von globo (31 Beiträge) am Mittwoch, 1.August.2007, 22:53.
    Re: do all bei Nutzerverwaltung

      Zu Felder ausblenden:

      >Nur ein Minus am Anfang reicht. allfields=-PriceInfo-intern,Price_EUR,AvailabSuppl-intern, Details-internal
      >(entweder man schliesst Felder aus, oder man gibt welche an)
      

      Ach so geht das, da habe ich wohl die Dokumentation an der Stelle nicht richtig verstanden.

      -------------------

      Zu Nutzerverwaltung:

      Das Problem ist, das wir die Nutzerverwaltung auf der Seitenebene machen müssen, da es nicht-registrierte und registrierte Benutzer geben soll. Beide haben rein lesenden Zugriff aber unterschiedliche Views auf die Daten.

      Hmmmm....

      Könnte man ein Password evtl. beim Start der Seite gleich übergeben? Dann kann ich zwei unterschiedliche Seiten bauen mit unterschiedlichen Views auf die Daten, einmal mit automatischer und einmal mit manueller Passworteingabe.

      ???

     Antworten

    Beitrag von globo (31 Beiträge) am Mittwoch, 1.August.2007, 23:26.
    Re: do all bei Nutzerverwaltung

      Ach schau mal, man kann ja auch auf Seitenebene eine Benutzerverwaltung einrichten - aber funktionieren tut das nicht.

      Egal ob ich login=yes im "do all" setze oder nicht - es erscheint kein Anmeldefeld. bp springt immer in die Alternative. Ich habe natürlich die Benutzerdatenbank erweitert durch "Ausführen".

      Warum gibt's denn da wieder mal keine Anleitung für Leute die nicht Perl"en" wollen ....

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 2.August.2007, 00:03.
    Re: do all bei Nutzerverwaltung

      Da brauchst Du kein Perl für, auch das "login=yes" ist (im Normalfall) nicht nötig, es sollte eigentlich so funktionieren wie hier beschrieben:

      http://doku.baseportal.de/797.html#0

      "Legen Sie einfach eine Nutzer-Datenbank für die Seite an und geben Sie den Nutzern das Recht "Ausführen"." - mehr brauchts nicht...

      Gib mal einen Link auf Deine Seite, um zu sehen was Du falsch gemacht hast...

     Antworten

    Beitrag von globo (31 Beiträge) am Donnerstag, 2.August.2007, 00:16.
    Re: do all bei Nutzerverwaltung

      Oops, auch noch wach ...

      Link siehe weiter oben im ersten Beitrag.

      bp springt immer automatisch in die Alternative. Ich habe sogar die Nutzerdatenbank mit dem Template komplett neu angelegt.

      Legt man einen Nutzer * an, dann springt bp in die eigentliche Seite, aber eine Passwortabfrage erscheint nicht.

      Merkwürdig.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 3.August.2007, 00:58.
    Re: do all bei Nutzerverwaltung

      > bp springt immer automatisch in die Alternative.
      

      Ja, so soll es auch sein - ohne Anmeldung wird die angegebene Seite aufgerufen (openpage_d). Dort müsstest Du eine eigene Anmeldung ( out login; ) einbauen, so Du das möchtest...

      > Legt man einen Nutzer * an, dann springt bp in die eigentliche Seite, aber eine Passwortabfrage erscheint nicht.
      

      Auch das gehört so - der Nutzer * steht für unangemeldete Besucher. Wenn Du diesen die Ausführungsrechte an der Seite gibst, wird diese ohne Anmeldung angezeigt.

      Wenn ich Dich richtig verstanden habe, ist die Lösung doch aber ganz einfach: Du nimmst 2 Seiten, die eine schützt Du mit einer Nutzerdatenbank (für die Ausgabe für die registrierten Nutzer), die andere lässt Du ungeschützt (für die Ausgabe für die unangemeldeten Nutzer) - fertig...

      Oder möchtest Du auf jeden Fall eine Anmeldung ausgeben und wenn diese falsch ist, soll eine andere Ausgabe erscheinen? Das wäre seltsam, weil man sich ja nicht einfach mit irgendwas anmeldet, wenn man nicht registriert ist... Ginge aber auch, wenns sein müsste ;-)

     Antworten

    Beitrag von globo (31 Beiträge) am Freitag, 3.August.2007, 09:49.
    Re: do all bei Nutzerverwaltung

      Also sorry, ich verstehe das nicht:

      Machen wir es mal Schritt für Schritt:

      Ich lege zwei Seiten an mit zwei unterschiedlichen Views auf dieselbe Datenbank. SEITE_A ist für die Öffentlichkeit bestimmt, SEITE_B für registrierte Benutzer.

      Die Benutzerverwaltung muss ergo auf Seitenebene erfolgen.

      SEITE_A benötigt keine Absicherung. Für SEITE_B wird eine Userdatenbank angelegt. SEITE_B wird mit der Userdatenbank verknüpft, als alternativer Aufruf bei falscher Anmeldung erfolgt Aufruf von SEITE_A.

      Soweit so gut.

      Braucht man jetzt in SEITE_B einen Parameter im <do all - Tag oder ein Perl Script, um ein Login einzublenden oder nicht?

      Lässt man SEITE_B nackt, dann wird beim Aufruf von SEITE_B sofort die SEITE_A geladen, es sei denn, man hat einen Nutzer * angelegt, dann wird SEITE_B aufgerufen. Aber es erscheint nie ein Login!

      Ich habe es auch mit dem Parameter "login=" versucht sowie mit der PERL-Funktion

       <Perl>
       out login;
       </Perl>
      

      Aber es passiert nie das, was man erwarten würde:

      - Aufruf der SEITE_B
      - Login Bildschirm
      - Wenn Benutzer sich richtig anmeldet SEITE_B
      - Bei falscher Anmeldung SEITE_A

      http://doku.baseportal.de/797.html ist da auch nicht wirklich eine Hilfe!

      Muss ich nun also doch das PERL-Script aus meinem ersten Beitrag in SEITE_B einbauen?

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 3.August.2007, 11:45.
    Re: do all bei Nutzerverwaltung

      >> - Bei falscher Anmeldung SEITE_A
      

      normalerweise ist es doch so, das bei falschem Login das loginformular nochmal aufgerufen wird, damit man sich dann mit den richtigen Daten einloggen könnte, wenn es denn ein tippfehler war.

      deswegen kann man halt angeben:
      wenn nicht angemeldet -> login,
      wenn falsch angemeldet=nicht angemeldet -> login

      wenn du trozdem diese funktionalität haben willst, brauchst du auch noch SEITE_C
      da könntest nun das login selbst ausgeben lassen und je nach zustand auf die verscheidenen SEITEN leiten
      <perl>
      $_header="Location: http://baseportal.de/cgi-bin/baseportal.pl?htx=/SEITE_A\n\n" if(defined($uid) && !$_user); # wenn falsch angemeldet oder leer abgeschickt
      return out login if $_user eq "";  # loginform ausgeben
      $_header="Location: http://baseportal.de/cgi-bin/baseportal.pl?htx=SEITE_B&uid=$_user&sid=$_session\n\n";  # zur geschützen seite weiterleiten wenn login ok.
      </perl>
      

      SEITE_B muß dann in der Verwaltung unter "Ohne korrekte Anmeldung" die SEITE_A oder SEITE_C eingetragen haben, falls jemand ohne Login probiert.

     Antworten

    Beitrag von globo (31 Beiträge) am Freitag, 3.August.2007, 12:33.
    Re: do all bei Nutzerverwaltung

      Ich glaube, so langsam dämmert es mir:

      Das Auswahlfeld: "Ohne korrekte Anmeldung:" in der Seitenverwaltung bezieht sich auf eine Anmeldung an bp, nicht auf eine Anmeldung auf meiner Seite.

      Also im Sinne von: "Was soll passieren, wenn ein User, der nicht an -bp- angemeldet ist diese Seite aufruft?"

      Ich habe das so verstanden: "Was soll passieren, wenn ein beliebiger Nutzer die Seite aufruft und sich falsch einloggt?"

      Jetzt macht das ganze einen Sinn!

      Wenn ich nämlich an dieser Stelle das [baseportal-login] auswähle erhalte ich eine Anmeldeseite von bp und kann darüber die richtige Seite aufrufen.

      (Obwohl ich nicht verstehe, weshalb ich das login auch bekomme, wenn ich vom Seiteneditor aus die Seite aufrufe - da bin ich doch an bp angemeldet???)

      Wenn ich das bp-eigene Login nicht haben will, dann muss ich mir mit Perl selbst was stricken, was ich eigentlich nicht wollte, aber hier ist die von bp bereitgestellte Funktion für mich nicht akzeptabel.

      Da wäre es ganz nett, wenn man hier auf eine Bibliothek entsprechender Scripte zugreifen könnte. Ich beherrsche zwar 2-5 Programmiersprachen, aber ich habe einfach keine Zeit auch noch Perl zu lernen - der Brötchengeber will Ergebnisse sehen - und zwar flott.

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 3.August.2007, 13:26.
    Re: do all bei Nutzerverwaltung

      auch das hast du wieder falsch verstanden.
      Das login sieht zwar aus wie das von bp, ist aber nur an deine Website geknüpft.

      Ohne korrekte anmeldung sagt aus, wenn man sich an dieser seite nicht authentifiziert hat. hier auch wieder: wenn falsche zugangsdaten eingegeben wurden, dann ist das "nicht authentifiziert". deswegen kannst du nicht einfach nach ner falscheingabe woanders hin geleitet werden.

      Probier doch einfach den Code von mir, der geht. habs selbst vorhin ausprobiert. Dazu mußt du nich mal perl lernen, sondern nur kopieren.

     Antworten

    Beitrag von globo (31 Beiträge) am Freitag, 3.August.2007, 15:08.
    Re: do all bei Nutzerverwaltung

      >"Das login sieht zwar aus wie das von bp, ist aber nur an deine Website geknüpft."
      

      Jaja, das hab ich bemerkt. Dieses Login greift auf meine eigene Nutzerdatenbank zu.

      >Ohne korrekte anmeldung sagt aus, wenn man sich an dieser seite nicht authentifiziert hat.
      >hier auch wieder: wenn falsche zugangsdaten eingegeben wurden, dann ist das "nicht authentifiziert".
      

      Und genau das ist ja das Problem. Es wird beim Aufrufen der Seite gar kein Login gezeigt, also kann ich mich weder richtig noch falsch sondern schlichtweg gar nicht authentifizieren.

      >deswegen kannst du nicht einfach nach ner falscheingabe woanders hin geleitet werden.
      

      Was ist dann der Sinn dieses Auswahlfeldes?? Ich checks nicht!!

      >Probier doch einfach den Code von mir, der geht. habs selbst vorhin ausprobiert. Dazu mußt du nich mal perl lernen, sondern nur kopieren.
      

      Danke, das ist sehr nett. Aber wie verknüpfe ich die drei Seiten und die Nutzerdatenbank miteinander, damit ein sinnvolles Ergebnis dabei rauskommt.

      Vielleicht hellt sich mein umnachtetes Hirn auf, wenn ich ein funktionstüchtiges Ergebnis vor mir habe, das ich analysieren kann. Dann schreibe ich auch gerne eine entspr. Dokumentation dazu.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 3.August.2007, 19:40.
    Re: do all bei Nutzerverwaltung

      Ich bin ganz erstaunt wie kompliziert Ihr denkt - es ist sooo einfach ;-)

      Also:

      Möglichkeit a) Man benutzt das Design des bp-Logins:

      SEITE_A (öffentlich) -> Keine Nutzer-Datenbank
      SEITE_B (geschützt) -> Nutzer-Datenbank einstellen, "Ohne Anmeldung: [baseportal-Login]"

      Keinerlei Code nötig.


      Möglichkeit b) Man möchte ein eigenes Login im Design der geschützten Seite:

      SEITE_A (öffentlich) -> Keine Nutzer-Datenbank
      SEITE_B (geschützt) -> Nutzer-Datenbank einstellen, "Ohne Anmeldung: [Seite trotzdem ausführen]"

      Auf SEITE_B sowas wie:

      <perl>
      die login if $_user eq "";
      </perl>
      

      am Anfang der Seite an die Stelle an der das Login stehen soll...



      Möglichkeit c) Man möchte ein eigenes Login auf einer eigenen Seite:

      SEITE_A (öffentlich) -> Keine Nutzer-Datenbank
      SEITE_B (geschützt) -> Nutzer-Datenbank einstellen, "Ohne Anmeldung: Eigene Login-Seite auswählen"

      Auf diese Login-Seite muss dann einfach:

      <perl>
      out login;
      </perl>
      

      Man muss nicht mit "header-Location" hin und herwechseln, das macht baseportal automatisch - ist ein User angemeldet kommt er auf die eigentliche Seite, wenn nicht auf die Login-Seite.

      Diese Login-Seite selbst braucht in Verwaltung KEINE Nutzer-Datenbank... (So war das gerade eingestellt).


      Ich war so frei und hab Dir das einfach mal richtig angelegt, also b) als "registerpage_d_selbst" und c) als "registerpage_d" und "loginpage_d". Um Möglichkeit a) zu testen, musst Du einfach bei "registerpage_d" auf "[baseportal-Login]" stellen...


      Hoffe, es ist nun alles klar ;-)

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 3.August.2007, 19:15.
    Re: do all bei Nutzerverwaltung

      Also ich hab jetzt die weitergehende Diskussion mit Dir und Sander noch nicht ganz durchschaut, aber hier muss ich schonmal einhaken:

      > SEITE_A benötigt keine Absicherung. Für SEITE_B wird eine Userdatenbank angelegt. SEITE_B wird mit der Userdatenbank verknüpft, als alternativer Aufruf bei falscher Anmeldung erfolgt Aufruf von SEITE_A.
      

      Nach dem Komma ists falsch: Eigentlich sollte es reichen, wenn Du dort die Voreinstellung "[baseportal-Login]" lässt. Dann kriegst Du die Standard-baseportal-Anmeldeseite, die alles handlet. Nur wenn Du ein eigenes Design für diese Anmeldung haben willst, dann kannst Du eine eigene Anmeldeseite anlegen (dort muss irgendwo "out login" auftauchen) und diese stellst Du dann hier ein...

      Wenn Du SEITE_A einstellst, dann wird (wie Du ja verwundert feststellst ;-) ) sofort ohne Anmeldung SEITE_A aufgerufen, weil baseportal davon ausgeht dass dies Deine Anmeldeseite ist... ;-)

     Antworten

    Beitrag von globo (31 Beiträge) am Freitag, 3.August.2007, 20:03.
    Re: do all bei Nutzerverwaltung

      Eigentlich ist es ganz einfach - wenn man weiß wie es geht!
      Wie leider so häufig in bp :-(

      Schreib doch einfach anstatt:

       Ohne korrekte Anmeldung: [...........]
      

      besser:

       Anmeldeseite auswählen:  [...........]
      

      Ich denke, dann versteht man schon fast wie es gemeint ist.

      Soll ich eine Anleitung für die Hilfe verfassen? Ist eigentlich eh mein Spezialgebiet ....

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 4.August.2007, 00:51.
    Re: Re: do all bei Nutzerverwaltung

      > Eigentlich ist es ganz einfach
      

      Sag ich doch die ganze Zeit ;-)

      > Schreib doch einfach...
      

      Mmh, findste besser? Für mich beisst sich das mit "Seite trotzdem ausführen" und "baseportal-Login"

      > Soll ich eine Anleitung für die Hilfe verfassen?
      

      Klar, gerne warum nicht - wie heisst denn Dein Nutzername hier bei baseportal.de?

     Antworten


     
 Liste der Einträge von 12751 bis 12901: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.10s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!