Autor Zpráva
Gecko
Profil *
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
1. Prostě <= podmínky, funkce pro kontrolu rozsahů není.
2. Všechny nečíselné znaky lze nahradit za prázdný řetězec.
Gecko
Profil *
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,-."";
Bohužel nefunguje.

Na 2. se podívám, je na to nějaká funkce?

Díky
Joker
Profil
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
$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 *
Chro:
Díky, bomba! :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: