[PHP] Niedziałająca prosta instrukcja warunkowa


(Ryan370z) #1
if ((int)$g != $g) { echo ('Numer GG musi składać się z liczb.'); return FALSE; };

Nawet gdy wpiszę w polu numer GG liczby z literami to i tak nie pokazuje komunikatu.


(Grzesie K) #2
$g='54645hk6456';

if(!is_numeric($g)){

	echo 'Numer GG musi składać się z liczb';

}

(M@ster) #3

is_numeric nie nadaje się na numer GG, bo -34,56 też przepuści - http://pl2.php.net/manual/pl/function.is-numeric.php

Wg. mnie najlepiej użyć wyrażenia regularnego:

if ( ! preg_match('/^[0-9]+$/', $g)) {

   echo 'Numer GG musi składać się z liczb';

}

(Ryan370z) #4

Ok, a czy taka instrukcja może istnieć czy muszę ją rozbić na kilka ?

if (mysql_nums_row(mysql_query("SELECT * FROM users WHERE l=$l")) >= 1) { echo 'Użytkownik o tym nicku lub mailu już istnieje.'; return FALSE; };

(Grzesie K) #5

Ta instrukcja jest poprawna, lecz nazwy pól w sql podaje się w , a wartości w '', poza tym po } nie stawia się średnika, a zmienna $l powinna być przerzucona przez addslashes() w celu zabezpieczenia skryptu.


(Ryan370z) #6
if (mysql_nums_row(mysql_query("SELECT * FROM `users` WHERE `l`=$l")) >= 1) { echo 'Użytkownik o tym nicku lub mailu już istnieje.'; return FALSE; }

Instrukcja nie działa.


(Grzesie K) #7
mysql_nums_row

a powinno być

mysql_num_rows