Re: @CB - Frage zum Fehlerabfangen - wieder mal Systemhashs - 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 Montag, 20.Juni.2005, 17:04.
    Re: @CB - Frage zum Fehlerabfangen - wieder mal Systemhashs

      1.

      > verstehste was ich meine?
      

      glaube schon ;-) mhh, weiss nich ob baseportal eigenständig sowas korrigieren sollte - vielleicht braucht das jemand mal genau so?

      kannste mir noch n beispiellink geben, mit dem ich das mal testen kann (also der mir die gewandelte url deiner sub ausgibt)?

      2.

      is ähnlich wie oben: wenn das uid in der url angegeben wird, wirds mit durchgereicht, wie alle andern auch - ich mag es nicht, wenn ein prg. eigenständig bei bestimmten situation was ändert - das sollte schon konsistent sein... ich meinte übrigens:

      http://baseportal.de/baseportal/nutzer/db?db=abc&uid=nutzer

      da kommt man nich in die admin, sondern kann eine db mit allen rechten editieren (wenn man das pw weiss)


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Samstag, 18.Juni.2005, 16:50.
    @CB - Frage zum Fehlerabfangen - wieder mal Systemhashs

      Selbst wenn man noch so aufpasst, kann es doch mal passieren, dass aufgrund fehlender Parameter oder falsch eingesetzter Parametername/Wertpaare mal schhnell ein mehrfaches '&' in nem dynamisch generierten Link auftaucht, was zur Folge hat, dass dann nicht die gewünschte Aktion ausgeführt wird.

      Nun stehen die Namen/Werte in %_get, wodurch sie als Variablen direkt ansprechbar sind. Bei zwei "&" hintereinander in der URL wird dann vor den Parameternamen ein "&" als Präfix angehängt, bei drei "&" hintereinander stimmts wieder.
      Könnte nicht gleich baseportal als solches angepasst werden,dass es diese möglichen Fehler evtl. abfängt und alle mehrfachen hintereinander in ENV{QUERY_STRING} stehende "&" in eins gewandelt werden? Wenn man das selber macht, bringt das ja nix, weil die Systemhashs und damit die direkt im Script ansprechbaren Variablen schon definiert wurden...)
      Ansonsten müsste man wohl einen Workaround beuen, in der Art, dass %_get durchlaufen wird und bei jedem Key das & gekillt wird, wenn es vorhanden war die entsprechende Variable, die ja dann defacto eine Deklaration auf ne nicht vorhandene Sub darstellt, auf undef gesetzt werden und die Variablen und Werte neu belegen, damit sie als Variablen- bzw. Parameternamen wieder zur Verfügung stehen - ist das richtig? Und stehen diese im Link übergebenen Parameter auch noch in anderen Systemhashs? %_cgi %_sel und %_put hab ich ausgewertet, hab ich da evtl. noch was vergessen?

      Ausserdem bin ich endlich auch den Bug/Problem mit der Variablen/Parameter "uid" auf die Schliche gekommen (du erinnerst dich?). Diese wird unnötigerweise automatisch im %_get mitgeführt, obwohl er bei "normalen" Templateaufrufen nicht gebraucht wird sondern nur innerhalb der BP-Oberfläche - das dürfte IMHO in die Kategorie "Bug" fallen - schau dir das bitte mal bei Gelegenheit mit an...

      Danke für Tipps

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 20.Juni.2005, 11:24.
    Re: @CB - Frage zum Fehlerabfangen - wieder mal Systemhashs

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Montag, 20.Juni.2005, 14:18.
    Re: @CB - Frage zum Fehlerabfangen - wieder mal Systemhashs

      nochmal zum ersten:
      es wäre sinnvoll, bei mehreren hintereinanderstehenden "&" die auf eins zu reduzieren, damit der (fehlerhafte) Link (wieder) richtig funzt.
      Ich hab mir folgenden Workaround gebaut, der (scheinbar) auch funzt ;-):
      ################################################################
      sub correct_linkvars { # bei Linkvariablen führendes & entfernen
       $a_debug.= "Hash \%_get:<br>";
       while ( ($k,$v) = each %_get){
       $a_debug.= "<ul style='margin: 2 10;'>\$k($k) - \$v($v)</ul>";
          if ($k =~ /^&+/){
          $k =~ s/^&+//g;
          ${"$k"} = $v;
          $_get{${"&".$k}} = undef; ${"&".$k} = undef;
          }
       }
      }
      ################################################################
      
      und am Anfang jedes Templates hau ich dann den Aufruf dieser Sub rein
      &correct_linkvars();
      verstehste was ich meine?

      zum zweiten:
      Nana - der Link führt aber auch zur bp-Oberfläche und ist Bestandteil der bp-Oberfläche...es ist ja in jedem %_get das uid als Standardwert drin, egal, ob man mit <do> oder do_all oder get/put/mod oder innerhalb der bp-oberfläche ist oder mit gar keiner DB-Aktion arbeitet und einfach nur ein Template mit ner Zeile HTML ausgibt.
      Ist immer da, so wie $_get{language} und $_get{htx}.
      Muss das standardmäßig mit durchgeschleift werden? Könnte man das nicht "nur" auf die Anmelderoutine beschränken? (das sag ich jetzt mal einfach so in meinem spätjugendlichen Leichtsinn...). Mein Workaround funzt bis jetzt sicher, so dass da IMHO kein Änderungsbedarf besteht, war nur mal so noch mit festgestellt.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 20.Juni.2005, 17:04.
    Re: @CB - Frage zum Fehlerabfangen - wieder mal Systemhashs

      1.

      > verstehste was ich meine?
      

      glaube schon ;-) mhh, weiss nich ob baseportal eigenständig sowas korrigieren sollte - vielleicht braucht das jemand mal genau so?

      kannste mir noch n beispiellink geben, mit dem ich das mal testen kann (also der mir die gewandelte url deiner sub ausgibt)?

      2.

      is ähnlich wie oben: wenn das uid in der url angegeben wird, wirds mit durchgereicht, wie alle andern auch - ich mag es nicht, wenn ein prg. eigenständig bei bestimmten situation was ändert - das sollte schon konsistent sein... ich meinte übrigens:

      http://baseportal.de/baseportal/nutzer/db?db=abc&uid=nutzer

      da kommt man nich in die admin, sondern kann eine db mit allen rechten editieren (wenn man das pw weiss)

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Dienstag, 21.Juni.2005, 10:38.
    Re: @CB - Frage zum Fehlerabfangen - wieder mal Systemhashs

      1) gut, dass das vielleicht mal jemand brauchen kann ist natürlich ein Argumen, aber das ist nur teilweise wahr. So werden alle "ungeradzahligen" & ja eh ausgefiltert, so dass jemand, der zwei && als Suffix haben will, eh keine Chance hat (nehme mal an, du splittest ENV{QUERY_STRING} an den &, dann diese Werte wiederum am = und wenn das nicht da ist, wird natürlich auch kein Key/Value-Paar ins %_get geschrieben - deshalb kommt es, dass auch nur immer ein & als Präfix angehängt wird, egal wieviele & in der URL hintereinander übergeben wurden - stimmt doch oder? ;-) )
      Die Sub wandelt ja nicht die URL sondern nur die Parameternamen und stellt die korrigierten Parameternamen wieder als globale Variablen zur Verfügung, falls sie ein oder mehrere & als Präfix haben.
      Hier mal der Link aufs Anschauungstemplate:
      http://baseportal.de/cgi-bin/baseportal.pl?htx=/hempelr/testdir/c_link

      2) neenee, da muss ich deiner Argumentation widersprechen. Der Hinweis auf die Konsistenz ist wohl riochtig, aber dass der Parameter uid, wenn man den so nutzt, wie du das oben angegeben hast, aber dann bei der Übergabe per post und internen Weiterverarbeitung mit Parameterübergabe an Subs und wertmanipulierter Rückgabe daraus zu nem Fehler in bp führt, ist halt leider nicht konsistent...
      Beispielsweise macht $sid keine solchen Zicken, die kann man intern beliebig umwürfeln, genauso ist es bspw. mit $cmd und $sort und was weiss ich - die zucken nicht...

     Antworten


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