Christoph Zurnieden: Selbstprogrammierte Board-Software

Beitrag lesen

Hi,

#!/perl
%formdaten=&hole_form_daten;
print $formdaten{'blub'};
END


>   
> da ist doch jetzt völlig egal ob die variable/hasheintrag fred existiert oder nicht, weil sie nicht verwendet wird.  
  
Ja, aber es ist nicht egal, ob die Variable 'blub' existiert und das meinte ich.  
  

>   ich glaube wir reden aneinander vorbei ;):  
  
Das ist nicht unwahrscheinlich ;-)  
  

>   ~~~html
  

>   <input type="text" name="int_5_test" value="200" />  
>   

würde im skript zu anfang folgendermaßen verarbeitet werden (die kurzform):

#[..]
  $REGS{int}='[^0-9]';
  $original_name='int_5_test';
  #der name wird auseinander genommen und den variablen type und length zugeordnet, der inhalt wird der variable inhalt zugeordnet
  $type='int';
  $length=5;
  if (length($inhalt > $length) || $inhalt=~/$REGS{$type}/){
    die "fehler, ungültige länge oder zeicheneingabe";
  }
  else
  {
    $erlaube_variablen{$original_name}=$inhalt;
  }

  
Aha, Du machst ds alos genau umgekehr, wie von mir angegeben.  
Ich hatte es so vermutet und auch als logisch empfunden:  
Wenn der Variablenname erlaubt ist  
  parse Variablenname  
  parse Variableninhalt  
    wenn der Variableninhalt den Vorgaben enstpricht  
      benutze Variable  
    sonst  
      gebe Fehler aus  
Sonst  
  gebe Fehler aus.  
  
"Vorgaben" sind hier die Typisierung laut Variablennamen und die sonstigen üblichen Checks (nur ASCII im String o.ä.)  
  
Die allererste Prüfung hier ist also, ob der Variablenname eine Entsprechung in einer Liste der erlaubten Variablennamen findet. Dann erst folgt das Parsen des Variablennamens und die Anwendung der so gefundenen Tests des Inhaltes. Laut Deinem Beispiel 'int\_5\_test' wäre ein Integer der Länge 5 zu erwarten. 'test' ist hier der individuelle Bezeichner und '\_' ein Trennzeichen. Das nötige Vorwissen ist hier, das alles als String ankommt, der Integer ist dezimal in ASCII codiert und Länge bezeichnet die maximal Anzahl der Oktetts (das habe ich mal Deinem Code entnommen bei stillschweigender Korrektur).  
Das wäre dann eine schöne Bequemlichkeit, mehr zwar nicht, aber immerhin.  
So wie Du das machst fehlt die Nutzung der Kontrollmöglichkeit, die so eine Namenskonvention bietet.  
  
  
so short  
  
Christoph Zurnieden
0 49

Selbstprogrammierte Board-Software

Andavos
  • meinung
  1. -1
    Ludger
    1. 0
      Andavos
      1. 0
        Ludger
        1. 0
          Andavos
  2. 0
    sungirl2005
    1. 2
      Fabian St.
      1. 0
        sungirl2005
    2. 0
      Andavos
      1. 0
        sungirl2005
        1. 1
          Andavos
          1. 0
            sungirl2005
            1. 0
              Andavos
              1. 0
                sungirl2005
            2. 0
              Thomas J.S.
              1. 0
                Andavos
                1. 0
                  Thomas J.S.
              2. 0
                Dennis
          2. 0
            Fabian St.
  3. 4
    Eternius
    1. 0
      Andavos
      1. 0
        Dennis
        1. 0
          Andavos
          1. 0
            wahsaga
            1. 0
              Andavos
              1. 0
                wahsaga
                1. 0
                  Andavos
                  1. 1
                    Christian Kruse
              2. 0
                Christian Kruse
          2. 0
            Alexander Brock
      2. 2
        Christoph Zurnieden
        1. 0
          wahsaga
          1. 0
            Christoph Zurnieden
        2. 1
          Eternius
          1. 1
            Christoph Zurnieden
            1. 0
              Eternius
              1. 0
                Christoph Zurnieden
                1. 0
                  Eternius
                  1. 0
                    Eternius
                  2. 0
                    Christoph Zurnieden
                    1. 0
                      Eternius
                      1. 0
                        Christoph Zurnieden
                        1. 0
                          Eternius
      3. 0
        Christian Kruse
        1. 0
          Andavos
    2. 0
      Jeena Paradies
      1. 0
        Andavos
        1. 3
          Sven Rautenberg
    3. 0
      Andavos