Я такой конструкцией проверяю правильность ввода, но она какая-то ИМХО кривоватоя,что

olegking

Guest
ЧТО я сделал в итоге, кто и что скажет ???

if ($row_ip_user=mysql_fetch_array(mysql_query("SELECT id FROM `xtex_ban` WHERE ip_ban='$ip_ban'")))$errors[]="Ошибка1<BR>";
if (!preg_match("/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\$/i",$ip_ban))$errors[]="Ошибка 2<BR>";

if (isset($errors)) foreach ( $errors as $error )echo "$error"; else print "GO!!!";
 

SiMM

Новичок
> ЧТО я сделал в итоге, кто и что скажет ???
Как было непричёсанным, так и осталось.
Код надо писать не компактно (интересно, нафига это нужно?), а понятно. Чтобы через месяц он был так же понятен, как в момент его написания.
PS: и вообще $errors надо инициализировать.
 

Фанат

oncle terrible
Команда форума
olegking
напиши функцию получения одного значения из базы.
и используй её в своих скриптах вместо уродливого mysql_fetch_array(mysql_query(
 

Domovoj

Guest
Автор оригинала: olegking
ЧТО я сделал в итоге, кто и что скажет ???

if ($row_ip_user=mysql_fetch_array(mysql_query("SELECT id FROM `xtex_ban` WHERE ip_ban='$ip_ban'")))$errors[]="Ошибка1<BR>";
if (!preg_match("/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\$/i",$ip_ban))$errors[]="Ошибка 2<BR>";

if (isset($errors)) foreach ( $errors as $error )echo "$error"; else print "GO!!!";
Ты забаненные IP адреса проверяешь что ли?

Тогда обе ошибки у тебя никогда не возникнут, т.к. неправильные IP никогда не будут в базе лежать, соответственно и SQL не надо исполнять, если IP неверный.

PHP:
$error = '';
if (preg_match("/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\$/i",$ip_ban)) {
    if ($row = first_from_mysql_query("SELECT id FROM 'xtext_ban' WHERE ip_ban='$ip_ban' LIMT 1")) {
         $error = 'IP забанен';
    }
}
else {
    $error = "IP корявый";
}
Так намного читабельнее.
 

olegking

Guest
спасибо большое за реальную помощь, вернусь из универа, посмотрю
 

Фанат

oncle terrible
Команда форума
Domovoj, не понял, у тебя часто встречается REMOTE_ADDR с ошибками?
 

Domovoj

Guest
Автор оригинала: Фанат
Domovoj, не понял, у тебя часто встречается REMOTE_ADDR с ошибками?
Он его вроде бы не из REMOTE_ADDR берёт, а из какого-то текстового поля. См. сообщение об ошибке в первом его примере.
 

Фанат

oncle terrible
Команда форума
ну, ту кашу я не читал.
тогда тем более - с какой стати он берёт из текстового?
 

Domovoj

Guest
Автор оригинала: Фанат
ну, ту кашу я не читал.
тогда тем более - с какой стати он берёт из текстового?
Наверно скрипт заполнения таблицы с забаненными IPками
 

olegking

Guest
Да я беру ИП из текстового поля.
2 Domovoj: Я об этом и спрашивал в самом начале, какой смысл в куче награмаждении ифов ?
 

Domovoj

Guest
Автор оригинала: olegking
Да я беру ИП из текстового поля.
2 Domovoj: Я об этом и спрашивал в самом начале, какой смысл в куче награмаждении ифов ?
Через год ты потратишь 30 минут на то, чтобы разобрать то, что у тебя было приведено в первом твоём сообщении.

То, что ты назвал "награмаждении ифов" ты поймёшь на 20 минут быстрее.

Поэтому привыкай писать так, чтобы свои ошибки было править быстрее и легче.
 

olegking

Guest
Ммм... нагромождение ИФов это не то, а вот я же вот это написал, ИМХО это правильно и читабильно:
if ($row_ip_user=mysql_fetch_array(mysql_query("SELECT id FROM `xtex_ban` WHERE ip_ban='$ip_ban'")))$errors[]="Ошибка1<BR>";
if (!preg_match("/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\$/i",$ip_ban))$errors[]="Ошибка 2<BR>";

if (isset($errors)) foreach ( $errors as $error )echo "$error"; else print "GO!!!";
 

Domovoj

Guest
Автор оригинала: olegking
Ммм... нагромождение ИФов это не то, а вот я же вот это написал, ИМХО это правильно и читабильно:
if ($row_ip_user=mysql_fetch_array(mysql_query("SELECT id FROM `xtex_ban` WHERE ip_ban='$ip_ban'")))$errors[]="Ошибка1<BR>";
if (!preg_match("/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\$/i",$ip_ban))$errors[]="Ошибка 2<BR>";

if (isset($errors)) foreach ( $errors as $error )echo "$error"; else print "GO!!!";
твоё дело

-~{}~ 16.04.05 21:15:

Точно! Твой код будет быстрее выполняться, если он в одну строку написан!

Об этом же каждый знает, что раз размер файлы меньше, то и парсится он будет ГОРАЗДО быстрее!!!!

Молодец!!! Пиши так и дальше и получешь большой пряник!
 
Сверху