Проверка Email на занятость при регистрации для DLE
Представляем хак для дле проверка Email на занятость при регистрации или свободен почтовый адрес E-mail для регистрации на сайта, проверка производиться в базе данных и запрещает регистрацию если Email адрес почты дублируется. Это довольно простой скрипт dle проверки БД на занятость email, скрипт будет проверять при регистрации свободен ли email и логин на портале. Решение для DLE 14 и выше скрипт проверки Email-адреса (почты) на занят или нет при регистрации.
Установка хака проверка Email на свободность при регистрации
1. Открыть файл дле шаблона registration.tpl и найти:
<input type="text" name="email" class="f_input" />Заменить на:
<input type="text" name="email" id="email" class="f_input" /> <input class="bbcodes" style="height: 22px; font-size: 11px;" title="Проверить доступность E-Mail для регистрации" onclick="CheckEmail(); return false;" type="button" value="Проверить E-Mail" /><br /><div id='result-email'></div>2. Открыть файл engine/classes/js/dle_js.js и найти:
function CheckLogin(){var a=document.getElementById("name").value;ShowLoading("");$.post(dle_root+"engine/ajax/registration.php",{name:a},function(a){HideLoading("");$("#result-registration").html(a)});return!1}Добавить ниже:
function CheckEmail(){var a=document.getElementById("email").value;ShowLoading("");$.post(dle_root+"engine/ajax/registration.php",{email:a},function(a){HideLoading("");$("#result-email").html(a)});return!1}3. Открыть файл engine/ajax/registration.php и найти:
function check_name($name) {
global $lang, $db, $banned_info, $relates_word, $config;
...
... Добавить выше:
function check_email($email) {
global $lang, $db, $banned_info, $config;
$stop = "";
if( empty( $email ) OR strlen( $email ) > 50 OR @count(explode("@", $email)) != 2 OR !preg_match( "|([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is", $email)) $stop .= $lang['reg_err_6'];
if( count( $banned_info['email'] ) ) {
foreach ( $banned_info['email'] as $banned ) {
$banned['email'] = str_replace( '\*', '.*', preg_quote( $banned['email'], "#" ) );
if( $banned['email'] and preg_match( "#^{$banned['email']}$#i", $email ) ) {
if( $banned['descr'] ) {
$lang['reg_err_23'] = str_replace( "{descr}", $lang['reg_err_22'], $lang['reg_err_23'] );
$lang['reg_err_23'] = str_replace( "{descr}", $banned['descr'], $lang['reg_err_23'] );
} else {
$lang['reg_err_23'] = str_replace( "{descr}", "", $lang['reg_err_23'] );
}
$stop .= $lang['reg_err_23'];
}
}
}
if( $stop == "" ) {
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users WHERE email='" . $email . "'" );
if( $row['count'] ) $stop .= "Пользователь с таким E-Mail адресом уже зарегистрирован!";
}
return (!$stop) ? false : $stop;
}Найти еще:
$name = $db->safesql(trim(htmlspecialchars($parse->process(convert_unicode($_POST['name'], $config['charset'])), ENT_QUOTES, $config['charset'])));
$name = preg_replace('#\s+#i', ' ', $name);
$allow = check_name($name);
if (!$allow)
$buffer = "<font color=\"green\">".$lang['reg_ok_ajax']."</font>";
else
$buffer = "<font color=\"red\">".$allow."</font>";Для версии DLE 10/12
Заменить на:
if( isset($_POST['name']) ) {
$name = $db->safesql(trim(htmlspecialchars($parse->process(convert_unicode($_POST['name'], $config['charset'])), ENT_QUOTES, $config['charset'])));
$name = preg_replace('#\s+#i', ' ', $name);
$allow = check_name($name);
$buffer = (!$allow) ? "<font color=\"green\">" . $lang['reg_ok_ajax'] . "</font>" : "<font color=\"red\">" . $allow . "</font>";
} elseif( isset($_POST['email']) ) {
$email = $db->safesql(trim($_POST['email']));
$allow = check_email($email);
$buffer = (!$allow) ? "<font color=\"green\">Вы можете использовать данный E-Mail для регистрации</font>" : "<font color=\"red\">" . $allow . "</font>";
}Для версии DLE 13/14 и выше Читаем комметарий
Заменить на:
$name = $db->safesql(trim(htmlspecialchars($parse->process(convert_unicode($_POST['name'], $config['charset'])), ENT_QUOTES, $config['charset'])));
$name = preg_replace('#\s+#i', ' ', $name);
$allow = check_name($name);
$buffer = (!$allow) ? "<font color=\"green\">" . $lang['reg_ok_ajax'] . "</font>" : "<font color=\"red\">" . $allow . "</font>";
} elseif( isset($_POST['email']) ) {
$email = $db->safesql(trim($_POST['email']));
$allow = check_email($email);
$buffer = (!$allow) ? "<font color=\"green\">Вы можете использовать данный E-Mail для регистрации</font>" : "<font color=\"red\">" . $allow . "</font>";Готово!
Версия DataLife Engine: Любая
[attachment=14853:proverka-email-na-zanyatost-pri-registracii-dle.rar]
793
Рейтинг:
Похожие публикации
Партнёрские программы
Смотреть все1WIN ПАРТНЕРКА
1 403
Партнерские программы / Гемблинг партнерки
BroPush - партнёрская программа для монетизации и заработке на сайтах
1 310
Партнерские программы / PUSH партнерки
Партнерская программа Семяныча - Лучшая партнерка по CPA и CPC моделям
913
Партнерские программы / Способы заработка
Обзор Partners House для монетизации сайтов и лендингов + отзывы вебмастеров
795
Арбитраж трафика / Партнерские программы / PUSH партнерки
Магазин
Смотреть всеКупить
Бот для продажи VPN 3X-UI для Telegram
Telegram-бот для продажи VPN! Автоматизированный бот для продажи вашего...
Купить
Мониторинг хайп проектов на движке DLE
В данном скрипте есть возможность включить функцию чтобы пользователи сами...
Купить
Скрипт казино с 5 классическими играми.
Разработчики онлайн-казино, хотим поделиться отличной новостью: в январе мы...
Купить
Customer WishList / Избранные товары покупателей
Данный модуль позволяет просматривать избранные товары пользователей. Есть...
Купить
Меняем заголовок и favicon
Меняет favicon и title, при переходе пользователя на другую вкладку в браузере....






