Hallo TS,
damit nicht nachher der Hash von "array" gebildet wird.
Das ist tatsächlich eine üble Sache.
Im Normalfall wird das nicht vorkommen, solange das Form korrekt aufgebaut ist. Aber wehe, ein Script-Kiddie postet irgendwelchen vorsätzlichen Müll.
Ich habe das gerade mal ausprobiert. Laut Doku liefert password_hash ja FALSE, wenn ein Fehler auftritt. Wenn man ein Array als ersten Parameter hineingibt, wirft PHP eine Warnung, dass da ein Array statt eines Strings kam.
Und die Rückgabe ist: NULL. Nicht FALSE. Auch, wenn man Müll als Passwortalgorithmus übergibt, ist die Rückgabe NULL. Nicht false. Kommt mir wie ein böser Bug vor.
Man muss die Rückgabe von password_hash also auf NULL und FALSE prüfen, um festzustellen, dass da was schief ging.
Und die Prüfung der Eingabe auf is_array ist sicherlich auch sinnvoll. Da hilft aber tatsächlich filter_input - das liefert FALSE wenn im Parameter ein Array steht. Und NULL wenn der Parameter nicht existiert, ein paar ifs wird man also bauen müssen.
Rolf
sumpsi - posui - obstruxi