Re: @Stefan Krupop: Einfacher Zugangsschutz - 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 Sander (8133 Beiträge) am Sonntag, 24.Februar.2002, 22:39.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Aber klaro hats geschneit - in Spindler Mühle in Tschechien ;-)
      Morgen sollte er wieder da sein.

      Sander


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Phixxi (280 Beiträge) am Donnerstag, 21.Februar.2002, 18:50.
    @CB, AJ, Stefan K. oder andere Perl Profis: Einfacher Zugangsschutz

      Hallo!
      Ich bräuchte für folgendes Problem nochmal eine Lösung:
      Auf meiner Website (kein bp Server) liegt ein winzig, kleines LogIn Formular.
      Dort kann man nur 2 Felder ausfüllen, nämlich "Benutzer" und "KundenNr".
      Diese beiden Felder sind auch Bestandteil der Datensätze in der DB, welche durch das Form aufgerufen wird.
      Ergebnis ist also: "Zeige mir alle Datensätze in denen das Feld "Benutzer" = Eingabe & das Feld "KundenNr" = Eingabe sind!
      Nun soll folgendes gewährleistet sein:
      Ausgabe der Datensätze nur wenn:
      - BEIDE Feldwerte mit den Einträgen in der DB übereinstimmen!
      - Sollte nur ein Wert übereinstimmen (z.B. Benutzer) der andere aber nicht, oder falls gar kein Eintrag erfolgt ist, darf KEIN Datensatz ausgegeben werden!
      - Sollte gar nix eingegeben werden, darf KEIN Datensatz ausgegeben werden!
      - Sollte nur ein Teil der Eingabe richtig sein, z.B. KundenNr 123 anstatt 12345, darf KEIN Datensatz ausgegeben werden!
      - Sollte * o.ä. eingegeben werden (die Abfrage geht ja über URL), darf KEIN Datensatz ausgegeben werden!

      Ich habe bereits ein ähnliches/einfacheres Script, was auch funktioniert:

      <perl>
      unless ($_sel{ObjektNr}=~ /^(\d{4,4})$/)
      { 
      $inc="noobject";
      } else
      {
      $inc="Expose2";
      }
      </perl>
      <include src=$inc>
      #Das Template, in welchem dieser Zugangschutz realisiert werden soll sieht so aus:
      <perl>
      if($cmd eq "mod")
      {
      mod;
      $_get{cmd}="";
      }
      </perl>
      

      <do action=all selectbrowse=no formfields=-MaxObjekte,Benutzer,KundenNr databack=f0f0f0 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=2 gridcolor=b0b0b0 dataface=arial,helvetica range^=0,20 pagebrowse=top buttonbrowse=top listtype=list listfields=ObjektNr,Objekt\ aktiv\ bis,MaxObjekte,Objektname input=link>


      Es muß also praktisch nur das "Schutzscipt" erweitert und ins Template eingebaut werden...
      Wäre super klasse, wenn mir da jemand helfen könnte...
      Für einen richtigen Perl Fuchs dürfte das wahrscheinlich kein Problem sein.
      Leider bin ich eher ein Perl Esel...;-)

      Vielen, vielen Dank!!!
      Phixxi

     Antworten

    Beitrag von Stefan Krupop (311 Beiträge) am Donnerstag, 21.Februar.2002, 22:02.
    Re: @CB, AJ, Stefan K. oder andere Perl Profis: Einfacher Zugangsschutz

      Hi!

      So sollte es hinhauen, gleiches Vorgehen wie bei dem anderen Templates das du auch mit includes gemacht hast:

      <perl>
       $Benutzer=~s/^( |\*)//;
       $KundenNr=~s/^( |\*)//;
       if ($Benutzer ne "" & $KundenNr ne "") {
        get "Benutzer==$Benutzer&KundenNr==$KundenNr", "DEINEDATENBANK";
        if ($_amount_query > 0) {
         $inc="TEMPLATE_MIT_DEM_DO";
        } else {
         $inc="TEMPLATE_MIT_FEHLERMELDUNG";
        }
       } else {
        $inc="TEMPLATE_MIT_FEHLERMELDUNG";
       }
      </perl>
      <include src=$inc>
      

      Stefan

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Freitag, 22.Februar.2002, 12:19.
    Re: @CB, AJ, Stefan K. oder andere Perl Profis: Einfacher Zugangsschutz

      Hi Stefan,
      jap, so in etwa hab ich's mir auch gedacht.
      Leider blick ich aber die ganzen "Kleinigkeiten" noch nich so...
      Wenn man mal ein ; oder }, o.ä. vergisst, klappt gleich gar nix.
      Muß unbedingt mal ein bissi Perl lernen.
      Ich bau Dein Scrpit gleich mal ein.
      Vielen Dank nochmal!
      Auch dafür, dass Du mir schon so oft geholfen hast!
      Gruß
      Phixxi

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Freitag, 22.Februar.2002, 13:03.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Hi Stefan,
      klappt leider noch nicht so ganz:
      Gebe ich keine, unvollständige oder falsche Werte ein, kommt wie erwartet die Fehlermeldung (Template "error").
      (Allerdings zusätzlich mit bp interner Fehlermeldung -s.u.-
      Ist beim anderen Template aber auch so. Nicht so wíld...)
      Gebe ich aber korrekte Werte ein, erfolgt:
      [ Fehler: init:
      Ursache: Die angegebene Datenbank ist für den gewünschten Zugriff nicht freigegeben.

      Lösung: Gehen Sie in Ihren privaten Bereich (Anmelden), wählen Sie die entsprechende Datenbank aus, klicken Sie auf 'Verwaltung' und ändern Sie die Rechte entsprechend. ]

      Hier nochmal alle -vollständigen- Templates:
      1. Template "Zugang" (Standard Formularziel):
      <perl>
       
      $Benutzer=~s/^( |\*)//;
      $KundenNr=~s/^( |\*)//;
       if ($Benutzer ne "" & $KundenNr ne "") {
        get "Benutzer==$Benutzer&KundenNr==$KundenNr", "profis_input";
        if ($_amount_query > 0) {
         $inc="profis_input";
        } else {
         $inc="error";
        }
       } else {
        $inc="error";
       }
      </perl>
      <include src=$inc>
      # 2. Template "error":
      

      <html><head><title>LogIn fehlgeschlagen!</title>
      </head><body bgcolor="#ffffff">
      

      <br><ul>
      <font face="arial,helvetica" size=2>
      <h2 align=middle>LogIn fehlgeschlagen!</h2>
      <p>Bitte überprüfen Sie Ihre Eingaben
      und versuchen Sie sich erneut einzuloggen</p></font>
      

      <do action=all>

      <p><font face="arial,helvetica" size=2><b></b>
      <p></font>
      </ul>
      

      </body></html>

      # 3. Template "profis_input" (Standard DB Template):
      

      <html><head><title></title></head>
      <body bgcolor=ffffff>
      <font face=arial,helvetica>
      <font size=1></font>
      <h3></h3>
      

      <perl>
      if($cmd eq "mod")
      {
      mod;
      $_get{cmd}="";
      }
      </perl>
      

      <do action=all selectbrowse=no formfields=-MaxObjekte,Benutzer,KundenNr databack=f0f0f0 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=2 gridcolor=b0b0b0 dataface=arial,helvetica range^=0,20 pagebrowse=top buttonbrowse=top listtype=list listfields=ObjektNr,Objekt\ aktiv\ bis,MaxObjekte,Objektname input=link>

      <p><font face=arial,helvetica size=2>
      <p><font size=1></font>
      

      </body></html>


      Alle Template sehen genau so aus!
      Im Zugangs & Error Template sind keine DB's angegeben...

      Hast Du 'ne Idee?
      THX
      Phixxi

     Antworten

    Beitrag von Stefan Krupop (311 Beiträge) am Freitag, 22.Februar.2002, 19:05.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Hi!

      Ich glaube das Problem ist, dass eben keine DB angegeben ist. Ich nehme an, dass BP bei DB-Befehlen in Includes nicht den Namen des "includenden" Templates als Standard-DB-Namen nimmt, sondern den des Include-Templates. Versuch doch mal in den Templates die DB mit anzugeben:
      mod; -> mod undef,"DEINEDATENBANK";
      
      ins do noch db=DEINEDATENBANK
      (Oder hast du den Namen wieder falsch geschrieben? ;-) )

      Stefan

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Samstag, 23.Februar.2002, 11:13.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Hi Stefan,
      scroll doch mal nach unten und schau Dir noch mal meine Tempels an.
      Wo soll denn da der mod Befehl rein?
      Konnte ihn irgendwie nicht richtig einsetzten.
      bp hat immer was von Script Fehlern gemeckert...
      Vielleicht kannst Du ja das entsprechende Template copieren und den Befehl an der richtigen Stelle einfügen...;)
      DB Namen hab ich diesmal richtig geschrieben;)
      Wo meinst Du denn wo ich die angeben soll?
      Im Zugangs Template?
      Im Standard(profis_input) brauch ich's ja eh nicht und im error Tempel...?
      Ich hab vorher schon mal im Zugang die DB angegeben.
      Ergebnis war, dass sofort alle Daten angezeigt wurden.
      Trotz Zugangsschutz...
      Und jetzt...?
      :-(
      Gruß
      Phixxi

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Samstag, 23.Februar.2002, 11:16.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Mir fiel nochwas ein:
      Bin zwar ein Perl Dummy, aber wenn ich mir den anderen "Zugangschutz" so ansehe, sieht der doch irgendwie anders aus (unless...):
      <perl>
      unless ($_sel{ObjektNr}=~ /^(\d{4,4})$/)
      { 
      $inc="noobject";
      } else
      {
      $inc="Expose2";
      }
      </perl>
      <include src=$inc>
       
      
      Hat das vielleicht was damit zu tun?

     Antworten

    Beitrag von Stefan Krupop (311 Beiträge) am Samstag, 23.Februar.2002, 14:03.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Hi!

      Das "unless" ist eigentlich nur eine andere Form des if und die Bedingung dahinter ist halt mit einer RegEx aufgebaut, aber vom Prinzip (Festlegen der "Ausgabeseite" über $inc) her sind beide gleich...

      Stefan

     Antworten

    Beitrag von Stefan Krupop (311 Beiträge) am Samstag, 23.Februar.2002, 14:10.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Hi!

      Hm, irgendwie verlier ich langsam den Überblick über deine Templates ;)
      Inhalt von Template "Zugang" (neu):
      <perl>
       $Benutzer=~s/^( |\*)//;
       $KundenNr=~s/^( |\*)//;
       if ($Benutzer ne "" & $KundenNr ne "") {
        get "Benutzer==$Benutzer&KundenNr==$KundenNr", "profis_input";
        if ($_amount_query > 0) {
         $inc="profis_input";
        } else {
         $inc="error";
        }
       } else {
        $inc="error";
       }
      </perl>
      <include src=$inc>
       
      Inhalt Template "Error" bleibt gleich (kein BP-spezifischer Inhalt)
      

      Inhalt Template "profis_input":
      html><head><title></title></head>
      <body bgcolor=ffffff>
      <font face=arial,helvetica>
      <font size=1></font>
      <h3></h3>
      

      <perl>
       if($cmd eq "mod") {
        mod undef, "profis_input";
        $_get{cmd}="";
       }
       if ($cmd eq "del") {
        out "Es dürfen keine Datensätze gelöscht werden!<br>";
        $_get{cmd}="";
       }
      </perl>
      <do action=all db=profis_input selectbrowse=no formfields=-MaxObjekte,Benutzer,KundenNr databack=f0f0f0 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=2 gridcolor=b0b0b0 dataface=arial,helvetica range^=0,20 pagebrowse=top buttonbrowse=top listtype=list listfields=ObjektNr,Objekt\ aktiv\ bis,MaxObjekte,Objektname input=link>
      </body></html>
       
      
      (Hab die Änderung wegen löschen/ändern gleich mit reinkopiert)

      Stefan

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Samstag, 23.Februar.2002, 17:30.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Sei unbesorgt! Ich verlier auch langsam den Überblick ;)))
      Ich denke aber, Du hast es noch richtig erkannt.
      Werd ich gleich mal testen...
      Nur nochmal wegen des Überblicks:
      1. Tempel=Zugang
      Zweck: Überprüfung der Eingabe (Benutzer & KundenNr)
      wenn korrekt, dann zu>

      2. Tempel=profis_input (Originaltemplate)
      Zweck: Eingabe und ändern von Datensätzen
      Es können nur die DS des jeweiligen (angemeldeten) Users bearbeitet werden (wird dadurch erreicht, dass der User ja nur "seine" DS sieht)

      3. Tempel=error
      Wird angezeigt wenn
      -falsche Eingabe
      -unvollständige
      -oder gar keine Eingabe
      getätigt wurde
      

      Das war's eigentlich...
      Ich hoffe, Du hast jetzt wieder den Duchblick.
      Damit Du Bescheid weißt, wenn's doch noch nicht funzt...;))

      Aber ich test' erstmal!
      Vielen Dank,
      Phixxi

     Antworten

    Beitrag von Phixi (2 Beiträge) am Samstag, 23.Februar.2002, 17:55.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Ja, ja, wär ja auch zu schön gewesen...
      Also, erst dachte ich, es funzt.
      Zugang funktioniert!
      Bei falscher, unvollständiger oder gar keiner Angabe von Benutzer/KundenNr erfolgt Fehlermeldung. Richtig.

      Bei korrekter Eingabe erfolgt Ausgabe der Datensätze. Richtig.

      Wenn ich versuche zu löschen, kommt bp internes PopUp (Wirklich löschen) und nach Bestätigung mit Ja wird Eintrag gelöscht.
      Erst DANN kommt Meldung "Es dürfen keine Datensätze gelöscht werden!"...
      Weiteres Problem:
      Nach jedem Ändern eines Datensatzes wird die KundenNr und der Benutzer, sowie alle anderen Angaben welche ich vorher per csv Import angegeben hatte, gelöscht!
      Dadurch reduzieret sich die Anzahl der gefundenen Einträge mit jeder Editierung um Eins.
      Das Problem hatte ich vorher auch schon mal und Christoph o. Sander hatten da ein Mini Script welches das verhindern sollte:

      <perl>
      if($cmd eq "mod")
      {
      
      chg;
      $_get{cmd}="";
      }
      </perl>
      vor das <do action=all>
      

      Das ist jetzt wohl irgendwie außer Kraft...

      Und das letzte Problem ist, dass ich, wenn ich in der Detailansicht oder im Eingabeformular war, nicht mehr zurück zur Übersicht komme. Dabei hab ich doch Pagebrowse=top angegeben...!?
      Hmm...
      Ich hoffe, Du bist noch nicht am Ende mit Deinem Latein...äh Perl.
      Um nicht zu sehr durcheinander zukommen, hier nochmal das Template:

      <html><head><title></title></head>
      <body bgcolor=ffffff>
      <font face=arial,helvetica>
      <font size=1></font>
      <h3></h3>
      

      <perl>
       
      if($cmd eq "mod") {
        mod undef, "profis_input";
        $_get{cmd}="";
       }
       if ($cmd eq "del") {
        out "Es dürfen keine Datensätze gelöscht werden!<br>";
        $_get{cmd}="";
       }
      </perl>
      <do action=all db=profis_input selectbrowse=no formfields=-MaxObjekte,Benutzer,KundenNr databack=f0f0f0 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=2 gridcolor=b0b0b0 dataface=arial,helvetica range^=0,20 pagebrowse=top buttonbrowse=top listtype=list listfields=ObjektNr,Objekt\ aktiv\ bis,MaxObjekte,Objektname input=link>
      </body></html> 
      

      Please don't let me häng now! ;)
      THX & Gruß
      Phixxi


      P.S.
      Nur damit Du das blickst:
      Jeder User kann eine bestimmte Anzahl an Datenbankplätzen buchen, z.B. 10
      Ich erstelle dann in Access 10 leere Datensätze in denen nur der Benutzer, die KundenNr und 10 aufeinander folgende ObjektNr enthalten sind.
      Diese importiere ich dann per csv in bp.
      Wenn sich der User dann mit seinen Zugangsdaten einloggt, sieht er nur seine 10 gebuchten Datensätze (noch leer), welche er nach Herzenslust mit Inhalten füllen und jederzeit ändern kann.
      Löschen können sollte er sie nicht, weil er dann statt 10 nur noch 9 Datensatzplätze hat...
      Logo?

     Antworten

    Beitrag von Stefan Krupop (311 Beiträge) am Samstag, 23.Februar.2002, 18:14.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Hi!

      Logo! ;)
      Das mit dem Nicht-Löschen erst nach Bestätigung ist schon richtig (Javascript mit im Lösch-Link) und dürfte sich ohne Änderungen von CB auch nicht verhindern lassen...
      Das Mini-Perl-Script hatte mich ein bisschen gewundert, da mir kein Befehl "chg" bekannt ist. Eben deswegen weiss ich auch nicht wie man ihm den Namen der DB beibringen kann. Vielleicht geht's trotzedem, ersetze also 'mod undef, "profis_input";' durch 'chg;'.
      Zum letzten Problem: Pagebrowse bestimmt die Ausgabe der "Zähl-Reiter", was du meinst ist "selectbrowse" und das steht bei dir auf "no"...

      Stefan

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Samstag, 23.Februar.2002, 18:34.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Ich krich noch die Kriese...
      Jetzt happich wieder das alte "Antilöschnacheditierscript" eingesetzt und es geht nich mehr...
      Jetzt muß ich erstmal alle alten Postings von mir im Forum durchsuchen um das betreffende zu finden. Vielleicht finde ich da den Grund...:(
      Jetzt klappt das mit dem Zugang und dann schmiert das andere wieder ab *grmpf*

      Das mit selectbrowse happich auch schon bemerkt.
      Wieder mal en Flüchtigkeitsfehler...
      Aber eins noch:
      Kann ich irgendwie verhindern, dass "Neu" im selectbrowse auftaucht?
      Der User soll ja keine neuen Einträge machen können, sondern nur die ihm zustehenden "Schablonen" verändern können...
      THX
      Phixxi

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Samstag, 23.Februar.2002, 18:41.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Happs!
      Du hattest mit Deiner "Unwissenheit" Recht!
      chg; war falsch und musste durch mod; ersetzt werden...
      Christoph hatte erst das falsche Script geschrieben und ich hatte dieses abgespeichert und nicht das Berichtigte...;)

      So ist's richtig:

      <perl>
      if($cmd eq "mod")
      {
       
      mod;
      $_get{cmd}="";
      }
      </perl>
      

      Gruß,
      Phixxi

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Samstag, 23.Februar.2002, 18:53.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      AAAAAAAAAAAAAAARGH!!!!!
      Ich fasses nich!
      Kannst Du mir bitte folgendes erklären?
      Wieso funzt es, wenn ich den Aufruf Link über dem HTML Feld anklicke und Änderungen vornehme, aber nicht, wenn ich mich über mein LogIn Formular auf dieselbe Seite einlogge und Veränderungen vornehme???
      Tu ich letzteres, und ändere einen Datensatz, so werden dei anderen Felder gelöscht.
      Mach ich's direkt über den Aufruf Link des Templates, dann klappt alles und das Script tut seinen Dienst!

      Ich versteh's nich...

     Antworten

    Beitrag von Stefan Krupop (311 Beiträge) am Samstag, 23.Februar.2002, 23:05.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Hi!

      Zuerst dachte ich es liege an dem get (das das irgendwie die Änderungen überschreibt), aber das konnte ich nicht reproduzieren...
      So langsam gehen mir die Ideen aus, ne Test-URL wäre vielleicht mal gut!
      Übrigens hab ich noch n kleinen Fehler in das Zugangs-Script eingebaut, der allerdings hiermit nichts zu tun haben dürfte: In der Zeile " if ($Benutzer ne "" & $KundenNr ne "") {" müssten es nicht & sondern && heißen...

      Stefan

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Sonntag, 24.Februar.2002, 22:21.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      'n Abend Stefan,

      hab die && gerade aktualisiert...
      Du hast sicher Recht. Mit einer Test URL gings leichter.
      Werde ich morgen mal machen. Wird eh langsam Zeit...
      Wenn ich den ganzen Krempel drin habe, lass ich's Dich wissen.
      Wo steckt eigentlich der Christoph?
      Irgendwo eingeschneit...?;)

      Bis morgen,
      Phixxi

     Antworten

    Beitrag von Sander (8133 Beiträge) am Sonntag, 24.Februar.2002, 22:39.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      Aber klaro hats geschneit - in Spindler Mühle in Tschechien ;-)
      Morgen sollte er wieder da sein.

      Sander

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Montag, 25.Februar.2002, 12:15.
    Re: @Stefan Krupop: Einfacher Zugangsschutz

      :)))
      Wie schön für ihn...
      Meine Freundin ist gerade in der Schweiz,
      da hat's auch Schnee.
      Und ich bin sicher, Du warst kürzlich auch erst boarden, stimmt's?
      Wirklich klasse! Ich sitze hier bei diesem Ultramegahyperscheisswetter vor'm Rechner und kann mir den Schnee per Webcam angucken...*grmpf*
      Werde mich gleich vor's Eisfach setzten, die Augen schliessen und an der Spinatpackung lecken.
      Mit ein bisschen Fantasie fühle ich mich dann vielleicht auch wie auf der Piste...;-)

      Aber mal was anderes:
      Vielleicht weißt Du da ja auch Bescheid?
      Kannst ja mal schauen:

      http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/baseportal/forum&wcheck=1&Pos=4907

      ...und tschüss!
      Phixxi

     Antworten


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