URL-Parameter: was ist erlaubt, was verboten? - 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 Andreas Jurenda (32 Beiträge) am Sonntag, 25.März.2001, 21:38.
    URL-Parameter: was ist erlaubt, was verboten?

      Ich wollte beim Aufrufen eines Templates einige eigene Parameter im URL übergeben. Die Überlegung war, daß (sofern ich keine BP-definierten Namen nehme) ich eigene Parameter in die URL stellen kann und dann in Perl mittels $Parametername drauf zugreifen.

      Dabei stellt sich jedoch heraus, daß mitunter alles verrückt spielt:
      *) gesamte Datenbank wird überschrieben
      *) Abfragen bei put,get,mod funktionieren nicht
      *) do_all erzeugt keine Ausgabe mehr
      *) trotz mod in Template keine Änderungen
      *) ....

      Hier zwei Beispiele für einen Aufruf mit gewaltigem Unterschied (beim 2. kein do_all):
         http://baseportal.de/cgi-bin/baseportal.pl?htx=/jurenda/bpvdesigner/Designer&bpvdsn=databack&bpvdsv=#d0d0d0
         http://baseportal.de/cgi-bin/baseportal.pl?htx=/jurenda/bpvdesigner/Designer&bpvdsn=databack&bpvdsv=d0d0d0
      

      Welche Parameter sind von BP reserviert (z.B.: cmd=)?

      `Herzliche Grüße von Andreas Jurenda :-})


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Andreas Jurenda (32 Beiträge) am Sonntag, 25.März.2001, 21:38.
    URL-Parameter: was ist erlaubt, was verboten?

      Ich wollte beim Aufrufen eines Templates einige eigene Parameter im URL übergeben. Die Überlegung war, daß (sofern ich keine BP-definierten Namen nehme) ich eigene Parameter in die URL stellen kann und dann in Perl mittels $Parametername drauf zugreifen.

      Dabei stellt sich jedoch heraus, daß mitunter alles verrückt spielt:
      *) gesamte Datenbank wird überschrieben
      *) Abfragen bei put,get,mod funktionieren nicht
      *) do_all erzeugt keine Ausgabe mehr
      *) trotz mod in Template keine Änderungen
      *) ....

      Hier zwei Beispiele für einen Aufruf mit gewaltigem Unterschied (beim 2. kein do_all):
         http://baseportal.de/cgi-bin/baseportal.pl?htx=/jurenda/bpvdesigner/Designer&bpvdsn=databack&bpvdsv=#d0d0d0
         http://baseportal.de/cgi-bin/baseportal.pl?htx=/jurenda/bpvdesigner/Designer&bpvdsn=databack&bpvdsv=d0d0d0
      

      Welche Parameter sind von BP reserviert (z.B.: cmd=)?

      `Herzliche Grüße von Andreas Jurenda :-})

     Antworten

    Beitrag von Andreas Jurenda (32 Beiträge) am Sonntag, 25.März.2001, 21:54.
    Re: URL-Parameter: was ist erlaubt, was verboten?

      Der Fehler dürfte an der Verarbeitung dieser Parameter liegen. Nachdem ich jetzt den entsprechenden Code rausgeschmissen habe, gehts wieder normal.

      Vielleicht kann mir jemand einen Tip geben, wo da mein Denkfehlöer ist:

      Ich hab' eine Datenbank Parameter mit 2 Textfeldern name (sortiert) und value. Mit bpvdsn= und bpvdsv= in der URL möchte ich im Datensatz mit name==$bpvdsn das Feld value mit $bpvdsv verändern, bzw. beides als neuer Datensatz zufügen.

      <perl>
       if ($bpvdsn ne "")
       {
        get "name==$bpvdsn", "Parameter";
        if ($name ne "")
        {
         mod "name==$bpvdsn", ["value", $bpvdsv], "Parameter";
        } else
        {
         put ["name", $bpvdsn, "value", $bpvdsv], "Parameter";
        }
       }
      </perl>
      

     Antworten

    Beitrag von Sander (8133 Beiträge) am Sonntag, 25.März.2001, 22:37.
    Re: URL-Parameter: was ist erlaubt, was verboten?

      Probier mal alles mit " zu schreiben und den Ds mit Id anzusprechen, das Problem gabs glaub ich schon mal:

      <perl>
       
      if ($bpvdsn ne "")
      {
        get "name==$bpvdsn", "Parameter";
        if ($name ne "")
        {
         mod "Id==$_id", ["value", "$bpvdsv"], "Parameter";
        } else
        {
         put ["name", "$bpvdsn", "value", "$bpvdsv"], "Parameter";
        }
       }
      </perl>
       
      

      Sander

     Antworten

    Beitrag von Andreas Jurenda (32 Beiträge) am Sonntag, 25.März.2001, 23:55.
    Re: URL-Parameter: was ist erlaubt, was verboten?

      Danke für Deine Hilfe.
      Ich hab's gleich ausprobiert und dabei keinen Erfolg gehabt.

      ABER ICH HAB' DEN FEHLER!

      Mein eigener Browser hat mich aufs Kreuz gelegt!!!
      Beim Herumprobieren (ich hab nene IE5.5) sind mehrere Versionen der Adresse mit den Parametern entstanden und der IE bietet diese zur Auswahl an. Zum schnelleren Test nimmt diese Hilfe bereitwillig an.
      Und das ist fatal!

      Irgend wann hab ich dann eine Zeile mit einer Versionsnummer eingefügt diese bei jeder Änderung am Template erhöht. Und somit ist mir folgendes aufgefallen:

      Mein Browser holt die Seite aus dem lokalen Cache!!!!
      Da ich durch die vielen Versuche den Überblick verloren hab, ist mirs auch nicht aufgefallen!

      Zum Abschluß hab ich dann ein <meta http-equiv="expires" content="0"> in den <head> eingefügt und das wirkt wunder. Vielleciht sollte mas bei allen Defaultseiten von BP einbauen?!?

      Herzliche Grüße von Andreas Jurenda :-})

      PS.: Die ursprüngliche Version ohne " und Id funktioniert tadellos!!!

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 26.März.2001, 14:48.
    Re: "$Variable" = nich schön! ,-)

      Äh, das mit den Anführungsstrichen ist nicht ganz sauber, also sowas wie:

      put ["name", "$bpvdsn", "value", "$bpvdsv"], "Parameter";
      

      denn $bpvdsn ist eine Variable und wenn die alleine steht braucht sie kein "" drumrum...

      Ich seh sowas bei manchen Skripten hier häufiger, vielleicht sollte ich mal den Unterschied erklären:

      $bla = Variable
      
      "bla" = (Text)konstante

      Perl hat netter- und bequemerweise die Eigenschaft Variablen in doppelten Anführungsstrichen zu "interpolieren", das heisst also den Wert der Variablen einzufügen:

      "Ihr Name war $Name und sie war $Alter Jahre alt."

      macht Sinn... NUR

      "$Name"

      macht keinen Sinn, weil da drin ja kein _konstanter_ Textanteil drin vorkommt... Macht Perl nur unnötig Arbeit... Will man dieses Interpolieren nicht, muss man einfache Anführungsstriche schreiben:

      'Einer Variablen muss immer ein $ vorangestellt werden.'

      Klar?

     Antworten


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