Autor | Zpráva | ||
---|---|---|---|
mikulas12 Profil |
#1 · Zasláno: 20. 2. 2018, 19:46:04
Ahoj, proč se mi do $id po použití funkce filter_var uloží text a ne číslice? A jakto že se to obojí vyhodnotí jako true když to dolní je string?
$idZurlAdresy = "5 delte * from user; --"; $id = (int)$idZurlAdresy; var_dump($id); // tady mi vypíše int(5) //vyhodnotí se jako true if (filter_var($id, FILTER_VALIDATE_INT)) { echo("Variable is an integer"); } else { echo("Variable is not an integer"); } $id = filter_var($id, FILTER_SANITIZE_NUMBER_INT); var_dump($id); // tady mi vypíše string(1) "5" // také se to vyhodnotí jako true if (filter_var($id, FILTER_VALIDATE_INT)) { echo("Variable is an integer"); } else { echo("Variable is not an integer"); } |
||
Keeehi Profil |
#2 · Zasláno: 20. 2. 2018, 21:35:43
Protože to tak dělá. Vstup si převede na řetězec a pak z něho vyseparuje podřetězec podle zadaného filtru. V tvém případě tak, aby výsledný řetězec šel bez problémů přetypovat na číslo.
|
||
Časová prodleva: 6 let
|
0