Где проверяется правильность домена email? Домен нестандартный, для примера емайл user@runet при регистрации клиента ругается.
Где убрать эту проверку? или проста разрешить такой домен?
Неправильный email. Где проверяется?
-
- phpBB 1.4.3
- Сообщения: 78
- Стаж: 19 лет 10 месяцев
- Благодарил (а): 1 раз
-
- Former team member
- Сообщения: 1139
- Стаж: 19 лет 2 месяца
- Откуда: Ленинград
Предполагается, что у ваших пользователей не может быть адресов на рутовых DNS. Что и логично. user@runet.hren.vam вполне пройдет. Т.е. проверка идет на валидность шаблона. Кроме того, будет ругаться в том случае, если такой адрес уже есть в базе.
-
- phpBB 1.4.3
- Сообщения: 78
- Стаж: 19 лет 10 месяцев
- Благодарил (а): 1 раз
В базе адреса быть не может потому что эти адреса не принимаются форумом, я же описал выше. Сами адреса емайл менять тоже ни к чему, к ним уже привыкли. Нужно просто выключить проверку шаблона./DiOs писал(а):Предполагается, что у ваших пользователей не может быть адресов на рутовых DNS. Что и логично. user@runet.hren.vam вполне пройдет. Т.е. проверка идет на валидность шаблона. Кроме того, будет ругаться в том случае, если такой адрес уже есть в базе.
-
- Former team member
- Сообщения: 1139
- Стаж: 19 лет 2 месяца
- Откуда: Ленинград
-
- phpBB 1.4.3
- Сообщения: 78
- Стаж: 19 лет 10 месяцев
- Благодарил (а): 1 раз
Код: Выделить всё
function validate_email($email)
{
global $db, $lang;
if ($email != '')
{
if (preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/is', $email))
{
$sql = "SELECT ban_email
FROM " . BANLIST_TABLE;
if ($result = $db->sql_query($sql))
{
if ($row = $db->sql_fetchrow($result))
{
do
{
$match_email = str_replace('*', '.*?', $row['ban_email']);
if (preg_match('/^' . $match_email . '$/is', $email))
{
$db->sql_freeresult($result);
return array('error' => true, 'error_msg' => $lang['Email_banned']);
}
}
while($row = $db->sql_fetchrow($result));
}
}
$db->sql_freeresult($result);
$sql = "SELECT user_email
FROM " . USERS_TABLE . "
WHERE user_email = '" . str_replace("\'", "''", $email) . "'";
if (!($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, "Couldn't obtain user email information.", "", __LINE__, __FILE__, $sql);
}
if ($row = $db->sql_fetchrow($result))
{
return array('error' => true, 'error_msg' => $lang['Email_taken']);
}
$db->sql_freeresult($result);
return array('error' => false, 'error_msg' => '');
}
}
return array('error' => true, 'error_msg' => $lang['Email_invalid']);
}
Добавлено спустя 2 минуты 20 секунд:
Они существуют. Форум в домашней сети./DiOs писал(а):А зачем забивать базу несуществующими e-mail?
-
- Former team member
- Сообщения: 1139
- Стаж: 19 лет 2 месяца
- Откуда: Ленинград
Вот эта:Flat писал(а):Какая из этих строк отвечает за нужную мне проверку?
Код: Выделить всё
if (preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/is', $email))
Код: Выделить всё
if ()
Причем здесь домашне(о?)сть сети? Никто не мешает (как это сделано в подавляющем большинстве корпоративных сетей) иметь RFC-compliant адреса хоть в поле, хоть в доме. Иначе аналогичные грабли будут торчать много откуда. Хотя согласен, бег по граблям -- наш национальный вид спорта.Flat писал(а):Они существуют. Форум в домашней сети.
-
- phpBB 1.4.3
- Сообщения: 78
- Стаж: 19 лет 10 месяцев
- Благодарил (а): 1 раз