| Autor | Zpráva | ||
|---|---|---|---|
| nightrider Profil |
#1 · Zasláno: 23. 7. 2009, 19:22:11 · Upravil/a: nightrider
Zdravim, na předchozim foru jsem řešil nefunkční kontrolu, ale ted by jsem chtěl spíš řešit kontrolu polí. Bylo mi řečeno, že programatoři nedělají pro každé pole ověření a tak se chci zeptat jak to tedy programátoři dělají? Taky by jsem se chtěl zeptat co je na tomhle špatně?
if (eregi("^[[:alnum:]][0-9]{0,5}$",stripslashes(trim($_POST['telz'])))) { // Jen nevim proč je tohle špatně if (eregi("^[[:alnum:]][0-9]{1,5}$",stripslashes(trim($_POST['telz'])))) { // Změnil jsem jen počet povolených znaků a jede to jak má Ví někdo kde mám chybu? Potřebuju aby to pustilo pouze čísla a to i pouhy 1. Děkuju |
||
| Jan Tvrdík Profil |
#2 · Zasláno: 23. 7. 2009, 19:31:22
nightrider:
Proč myslíš, že první zápis je chybný? Co očekáváš, že bude dělat a nedělá? |
||
| Nox Profil |
#3 · Zasláno: 23. 7. 2009, 19:33:04
Stačí
if( preg_match("/^\d+$/", trim($_POST["telz"]) ) ){...Pokud má projít i prázdný řetězec, tak místo + dát * Teoreticky by tam nemusel být ani ten trim |
||
| Joker Profil |
#4 · Zasláno: 23. 7. 2009, 20:46:48
nightrider:
„Kontrola polí“: Kdo je osel, ať se přihlásí na místním úřadě :-) „Bylo mi řečeno, že programatoři nedělají pro každé pole ověření“ Tohle nevím jak je myšlené. programátoři by měli kontrolovat každé pole, které může potenciálně způsobit nějakou neplechu, což je skoro každé. Ne vždy je ale nutná zrovna takováhle kontrola. Například pokud v tom poli má být číslo, pro některé případy by stačilo něco jako: $hodnota = intval($_POST["hodnota"]); ...a dále pracuju se $hodnota. Když mi zlý hacker pošle nějaký záludný vstup, může docílit maximálně toho, že v $hodnota bude nula. |
||
| nightrider Profil |
#5 · Zasláno: 24. 7. 2009, 03:57:04
První kontrola vyhazuje chyby. Nevím proč, ale jakmile 0 nahradím 1, tak všechno jede jen už uživate musí vypsat 00 na místo 0 a záludný je taky to, že pustí b,ale pokud se napíše třeba bb, tak to už dál nepustí.
|
||
| nightrider Profil |
#6 · Zasláno: 24. 7. 2009, 06:22:16
Vše vyřešeno :-) Děkuju za rady
|
||
|
Časová prodleva: 17 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0