|
|
|
| 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 лучше хранить в каком типе ?
| |
|
|
|
|
|
|
|
для: 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
и т.д. Это так и надо? | |
|
|
|
|
|
|
|
для: 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))
|
| |
|
|
|
|
|
|
|
для: SHAman
(08.01.2008 в 00:01)
| | Фиговое выражение Shaman.
Вы не учли хотя бы то, что домены первого уровня могут быть и 6 символов, при если адрес поддомена третьего уровня. | |
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|
|
|
|
для: exp
(08.01.2008 в 00:42)
| | >^[a-z][a-z0-9_\.\-]{1,23}
Поясните мне вот этот фрагмент? зачем хотябы впереди [a-z]?
И почему конечность символов перед @ ограничивается 23 ?
И тд. | |
|
|
|
|
|
|
|
для: Faraon
(08.01.2008 в 00:50)
| | ну, впереди a-z, чтобы гарантировать, что мэйл начинается с буквы. Не знаю, как там по стандарту. Всегда использовал такую нейтральную, неагрессивную штуку:
^[a-z0-9_.-]+@[a-z0-9_.-]+\.[a-z]{2,6}$
|
Ну или типа того. Ничерта не гарантирует, но от опечаток спасает. | |
|
|
|
|
|
|
|
для: Faraon
(08.01.2008 в 00:50)
| | я точно не знаю , просто где.то при регистрации адреса видел что делается не меньше двух и не больше 22х символов начиная обязательно с буквы . Сделал 24 на всякий случай :) что.то похожее в доменных именах . Но возможно есть домены с _ в имени или начинающиеся с цифры . И даже скорее всего адреса типа name@255.255.255.255, но сомневаюсь | |
|
|
|
|
|
|
|
для: exp
(08.01.2008 в 00:42)
| | спаибо, exp работает. | |
|
|
|