php Filtern problem

05/31/2016 23:28 Cc_Cc_Cc#1
Tag,


ich wollte das der Vorname und Nachname keine Zeichen wie '" etc zulässt und wollte es Filtern aber es funktoniert i-wie nicht.


Die Zeichen werden immernoch zugelassen. Woran liegt es?
06/02/2016 20:45 krosswarrior#2
[Only registered and activated users can see links. Click Here To Register...]

filter_var gibt nur false aus, wenn es fehlschlägt, d.h. einen unzulässigen Input kriegt, mit dem es nichts anfangen kann. Enthält der String nichts filterbares, wird er trotzdem gefiltert, weil filter_var mit Strings umgehen kann. Enthält der String etwas filterbares, wird es gefiltert und zurückgegeben.

FILTER_SANITIZE_FULL_SPECIAL_CHARS entspricht einer escape-Funktion ([Only registered and activated users can see links. Click Here To Register...]), d.h. dein Input-String wird escapet und somit zugelassen.

Was du brauchst ist ein validation filter ([Only registered and activated users can see links. Click Here To Register...]), dort den regex-Filter. Oder direkt den regex ohne Filter. Dafür dann eine beliebige String-Funktion (oder preg_match).

Möglich wäre es auch mit ctype ([Only registered and activated users can see links. Click Here To Register...]), aber dann musst du sichergehen, dass deine Spracheinstellungen korrekt sind.