| Autor | Zpráva | ||
|---|---|---|---|
| Gecko Profil * |
#1 · Zasláno: 1. 3. 2012, 16:50:47
Zdravím,
rád bych se zeptal na jednu pro mě nezvladatelnou věc. Mám PHP kód, který kontroluje číslo poslané přes _post v inputu: if (!is_numeric($_POST['vyse_daru']))) $error_log[] = "Dar musí být od 100,- do 5000,-."; Rád bych se zeptal, jestli lze omezit, aby PHP pustilo pouze číslo od 100 do 5000. K tomu mám ještě dva poddotazy - lze ošetřit, pokud návštěvník zadá 250 , 250,- , 250,- Kč nebo 2 500 ,- aby PHP vypustilo znaky Kč, ,- a mezery (potřebuji do PHP čistě číslo) A poslední dotaz - do db posílám i číslo a trochu a nevím si rady, jak ošetřit počet zadaných znaků (šlo by opět vypustit i mezery?). S tímhle se setkávám poprvé a formátování čísel jsem nikdy nepotřeboval. Díky. Gecko |
||
| Alphard Profil |
#2 · Zasláno: 1. 3. 2012, 17:20:23
1. Prostě <= podmínky, funkce pro kontrolu rozsahů není.
2. Všechny nečíselné znaky lze nahradit za prázdný řetězec. |
||
| Gecko Profil * |
#3 · Zasláno: 1. 3. 2012, 17:40:40
Díky za odpověď.
Mám tedy if (!is_numeric($_POST['vyse_daru']) and ($_POST['vyse_daru'])>=100 and ($_POST['vyse_daru'])<=5000) $error_log[] = "Dar musí být od 100,- do 5000,-.""; Na 2. se podívám, je na to nějaká funkce? Díky |
||
| Joker Profil |
#4 · Zasláno: 1. 3. 2012, 17:45:33
Gecko:
if (!is_numeric($_POST['vyse_daru']) and ($_POST['vyse_daru'])>=100 and ($_POST['vyse_daru'])<=5000) $error_log[] = "Dar musí být od 100,- do 5000,-.""; Ono to funguje, jen situace, kdy hodnota proměnné není číslo a zároveň je větší než 100 a zároveň je menší než 5000 nikdy nenastane. |
||
| Chro Profil |
#5 · Zasláno: 1. 3. 2012, 17:48:01
$dar = $_POST['vyse_daru'];
$smaz = array(
'kč',
'kc',
',-',
' '
);
$dar = str_ireplace($smaz, '', $dar);
$dar = trim($dar);
if (ctype_digit($dar) && $dar > 99 && $dar < 2501)
{
//ok
$dar = (int) $dar;
}
else
{
//chyba
$zprava = 'castka neni cislo nebo castka neni v rozmezi 100 - 2500';
} |
||
| Gecko Profil * |
#6 · Zasláno: 1. 3. 2012, 18:09:54
Chro:
Díky, bomba! :) |
||
|
Časová prodleva: 14 let
|
|||
0