2016-06-20 8 views
0

Ich kam gerade über diese Schnipsel in unserem Code-Basis:filter_input mit ungültigen Filter

$token = filter_input(INPUT_GET, 'token', FILTER_VALIDATE_STRING); 
if ($token === false || $token === null) { 
    die('invalid token'); 
} 

FILTER_VALIDATE_STRING kein gültiger Filtertyp ist. Bedeutet das, dass es einfach auf FILTER_DEFAULT zurückgesetzt wird, da ein nicht erkanntes Filter übergeben wurde?

+1

finden Sie den Coder und schlagen sie. –

Antwort

1

Alle GET- und POST-Vars sind Strings, und wie Sie festgestellt haben, ist FILTER_VALIDATE_STRING keine definierte Konstante. Wenn Sie Fehler aktivieren Bericht Sie sehen:

Hinweis: Die Verwendung von undefiniert Konstante FILTER_VALIDATE_STRING - angenommen 'FILTER_VALIDATE_STRING'

Warnung: filter_input() erwartet Parameter 3 zu lang sein, string gegeben

So filter_input() wird NULL genau wie jede andere Funktion zurückgegeben, die Argumente nicht übergeben wird.

Dies setzt voraus, dass derjenige, der dies schrieb, auch nicht FILTER_VALIDATE_STRING definierte.

+0

Gut zu wissen, dass ungültige Argumente NULL zurückgeben, war mir nicht bewusst. In diesem Fall würde dann immer die Dies() ausgelöst werden, was mich fragt, ob dieser Code überhaupt noch benutzt wird. Danke – bumperbox

+0

@Bumperbox so ziemlich alles zurückgibt NULL in PHP, wenn ein Wert nicht angegeben ist. –

1

Sie erhalten eine Warnung, dass eine undefinierte Konstante verwendet wird, und PHP wird weitermachen und es in ein String-Literal umwandeln. Am besten verwenden Sie eine Konstante, die in der definiert ist.

Verwandte Themen