Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Предупреждение preg_match() - Compilation failed: unmatched parentheses at offset
 
 автор: White_Owl   (07.01.2008 в 23:36)   письмо автору
 
 

Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 59 in z:\home\zadanie\www\regist_obrab.php on line 52
Ошибочный формат EMAIL-адреса !


if (!preg_match("/^[a-zA-Z0-9_\-.]+@(?:[a-zA-Z0-9_]{1,3})+\.[a-zA-Z0-9_]{1,3})+(\.[a-zA-Z0-9_]{1,3})*/",$email))
{
echo "Ошибочный формат EMAIL-адреса !";
exit;
}

52-я строка это тот самый if с preg_match
Вот код, из-за чего может выполняться такое предупрждение ?

И ещё сразу е впорос. Пременную в MySQL лучше хранить в каком типе ?


$date = time();

   
 
 автор: SHAman   (08.01.2008 в 00:01)   письмо автору
 
   для: White_Owl   (07.01.2008 в 23:36)
 

1) это для форума регулярных выражений вопрос
2) у вас там непарная скобка круглая.
Надо так, наверное:
preg_match("/^[a-zA-Z0-9_\-.]+@(?:[a-zA-Z0-9_]{1,3})+(\.[a-zA-Z0-9_]{1,3})+(\.[a-zA-Z0-9_]{1,3})*/",$email)
Или так:
preg_match("/^[a-zA-Z0-9_\-.]+@(?:[a-zA-Z0-9_]{1,3})+\.([a-zA-Z0-9_]{1,3})+(\.[a-zA-Z0-9_]{1,3})*/",$email)

а вообще, довольно странная регулярка для проверки мыла... Она пропускает только адреса вида:
mail@qwe.qwe.com
mail@qweqwe.qwe.com
и т.д. Это так и надо?

   
 
 автор: White_Owl   (08.01.2008 в 00:12)   письмо автору
 
   для: SHAman   (08.01.2008 в 00:01)
 

не, уже не надо. А как исправить на проверку стандарного пример slava@mail.ru ?

Так ?

(preg_match("/^[a-zA-Z0-9_\-.]+@(?:[a-zA-Z0-9_]{1,3})+\.([a-zA-Z0-9_]{1,3})*/",$email))

   
 
 автор: Faraon   (08.01.2008 в 00:29)   письмо автору
 
   для: SHAman   (08.01.2008 в 00:01)
 

Фиговое выражение Shaman.
Вы не учли хотя бы то, что домены первого уровня могут быть и 6 символов, при если адрес поддомена третьего уровня.

   
 
 автор: exp   (08.01.2008 в 00:42)   письмо автору
 
   для: Faraon   (08.01.2008 в 00:29)
 

Это не его выражение ;)
Наверное что.то типа такого пропустит более похожие на настоящие емэйлы :)
<?
if 
( !
preg_match"/^[a-z][a-z0-9_\.\-]{1,23}@([a-z][a-z0-9\-]{1,24}\.){1,3}[a-z]{2,6}$/i", ($email trim($email)) )) 
{ echo 
"Неподходящий EMAIL-адрес !"
exit; 
/* непроверял */

а хранить наверное в INT(11) до того как дата будет не умещаться в int

   
 
 автор: Faraon   (08.01.2008 в 00:50)   письмо автору
 
   для: exp   (08.01.2008 в 00:42)
 

>^[a-z][a-z0-9_\.\-]{1,23}
Поясните мне вот этот фрагмент? зачем хотябы впереди [a-z]?
И почему конечность символов перед @ ограничивается 23 ?
И тд.

   
 
 автор: SHAman   (08.01.2008 в 01:11)   письмо автору
 
   для: Faraon   (08.01.2008 в 00:50)
 

ну, впереди a-z, чтобы гарантировать, что мэйл начинается с буквы. Не знаю, как там по стандарту. Всегда использовал такую нейтральную, неагрессивную штуку:

^[a-z0-9_.-]+@[a-z0-9_.-]+\.[a-z]{2,6}$


Ну или типа того. Ничерта не гарантирует, но от опечаток спасает.

   
 
 автор: exp   (08.01.2008 в 01:21)   письмо автору
 
   для: Faraon   (08.01.2008 в 00:50)
 

я точно не знаю , просто где.то при регистрации адреса видел что делается не меньше двух и не больше 22х символов начиная обязательно с буквы . Сделал 24 на всякий случай :) что.то похожее в доменных именах . Но возможно есть домены с _ в имени или начинающиеся с цифры . И даже скорее всего адреса типа name@255.255.255.255, но сомневаюсь

   
 
 автор: White_Owl   (08.01.2008 в 02:32)   письмо автору
 
   для: exp   (08.01.2008 в 00:42)
 

спаибо, exp работает.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования