.

.

Das kannst du hier einfacher haben. Ist auch von der Performance her besser. .htaccess:php_flag magic_quotes_gpc Off

.

Hi!

Entweder du machst es über eine normale for-Schleife oder du nutzt die Array-Funktion array_walk(). Zweite Möglichkeit würde ich vorziehen, da du da ganz einfach als ersten Parameter das Array, also $_POST übergibst und als zweiten Parameter einen Funktionsnamen (muss in Anführungszeichen stehen!).

So wird jeder Wert des Arrays abgearbeitet und jedes mal die angegebene Funktion aufgerufen. Der angegebenen Funktion wird als Parameter der aktuelle Wert übergeben und als zweiter Parameter der Schlüssel des Werts - also das was in den eckigen Klammern steht (bei $_POST der Name des Formularfeldes).

[code]function fit_data($value, $name) {
$_POST[$name] = bla($value); // Hier kannst du dann die Anführungszeichen maskieren
}

array_walk($_POST, ‚fit_data‘);[/code]

Edit: Boah ne, jetzt hat man so nen langen Text geschrieben und irgendwer kommt dann mal wieder mit seiner tollen Lösung :ps:

Ach so, du willst Magic Quotes nach PHP 6 mitschleppen… habe ich überlesen.

@thorr: Das funktioniert nur eindimensional, im Gegensatz zu den den „echten“ magic quotes.

Och mann, immer gibts was rumzumeckern :smiley:

Umrüsten sollte aber in dem Fall heißen, dass es ohne magic quotes sicher ist und funktioniert, und nicht, dass man diesen missbilligten Müll mitschleppt. :p

Jede Lösung unter Perfektion tut’s nicht. :ps:

.

function mask(&$to_mask, $level=0)
{
   if(is_array($to_mask))
        foreach(array_keys($to_mask) as $id)
            mask($to_mask[$id], $level);
   else switch($level)
   {
      default:
      case 0:
      case "html":
           $to_mask=htmlspecialchars($to_mask);
           break;
      case "sql":
           $to_mask=addslashes($to_mask);
           break;
      case "filename":
            $to_mask=preg_replace("/[^a-zA-Z0-9\.]*/i", "_", $to_mask);
            break;
      case "dirname":
            $to_mask=preg_replace("/[^a-zA-Z0-9\.\\]*/i", "_", $to_mask);
            break;
   }
}

einfach mit mask($variable) aufrufen…kann auch ein Array sein :wink: