Funktion auf mehrere Variablen anwenden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Funktion auf mehrere Variablen anwenden

    Hallo Forum,

    ich möchte auf einige (nicht alle) Variablen eines Formulares dieselbe Funktion anwenden. Momentan sieht das Prinzip so aus:

    PHP-Code:
    function myfunction($var) {
    $var function_1(function_2(function_3($var)));
    return 
    $var;
    }

    $name myfunction($name);
    $betreff myfunction($betreff);
    $nachricht myfunction($nachricht); 
    Wie würdet Ihr das kürzer bzw. sinnvoller machen?

    Danke & Grüße,
    Erik

  • #2
    Für Formulardaten? Ich denke bei sowas geht es nicht primär darum es so kurz wie möglich machen sondern so sicher wie möglich.

    Kennst du eigentlich filter? (wertvolle Links am Ende der User Comments)

    Kommentar


    • #3
      bei wenigen Variablen macht das ohnehin keinen Sinn. Und da du sowieso jede Variable einzeln angeben musst, auf die die Funktion angewendet werden soll, ist es den Aufwand kaum wert...
      naja, hier mal eine Idee (und auch wirklich nur eine Idee)
      PHP-Code:
      function myfunction($var) {
      $var function_1(function_2(function_3($var)));
      return 
      $var;
      }
      $vars = array('name','betreff','nachricht');
      foreach (
      $vars as $varname) {
         $
      $varname myfunction($$varname);

      btw: sehr eigenartige Funktion...

      Kommentar


      • #4
        Man kann ja statt diesem Code:
        PHP-Code:
        unset($var1);
        unset(
        $var2);
        unset(
        $var3); 
        diesen hier verwenden:

        PHP-Code:
        unset($var1$var2$var3); 
        Ich denke er will wissen, wie man dieses Prinzip programmiert.

        Macks
        icedcream.de Webdesign Regensburg

        Kommentar


        • #5
          PHP-Code:
          function foo($var){
            return 
          $var;
          }
          foreach(
          array_keys($_POST) as $wert){
            if(
          $wert == 'ende'){
              $
          $wert foo($_POST[$wert]);
          }
          echo 
          $ende
          Wenn du also ein Feld mit Namen 'ende' hast dann gibt's danach eine Var $ende. In der Bedingung muss du einfach alle erlaubten Feldnamen angeben.
          Wobei ich onemorenerd voll beipflichte, dass Sicherheit vor der Länge des Codes steht.

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Vielen Dank für Eure interessanten Antworten & Tipps.

            Bzgl. Sicherheit: Natürlich habe ich auch eine Funktion, die auf Header-Injection etc. überprüft (sowohl auf Zeilenumbruch etc. als auch to:, cc:, bcc: etc.).

            Danke & Grüße,
            Erik

            Kommentar


            • #7
              P.S.: @ZombieChe: Natürlich wird die Funktion myfunction am Ende ganz anders aussehen, function_1 etc. war nur als Platzhalter gedacht für trim etc. ;-)

              Kommentar

              Lädt...
              X