Проверка 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]

Проверка Email на занятость при регистрации для DLE

31-03-2022, 22:30
.zip

Комментарии
Комментариев пока нет..
Ты можешь быть первым, кто оставит комментарий к публикации!


Вы не зарегистрированы

Проверка Email на занятость при регистрации для DLE


Автор публикации
Дата публикации
31-03-2022, 22:30
Просмотров
318
Комментариев
0

Каталог
Внимание! Данный материал предоставлен сайтом VIPAdmin.Club исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое
Проверка Email на занятость при регистрации для DLE
31-03-2022, 22:30
318

Проверка Email на занятость при регистрации для DLE

Информация
Версия
v1.405
Версия CMS
v15.0
Тематика
Новости, Блог, Каталог
Фреймворк
Bootstrap v5

Описание


Представляем хак для дле проверка 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]
[xfgiven_images]
Изображения
[/xfgiven_images]
Автор публикации
wad
Комментарии и отзывы
  • Пустота..
    Людям пока лень писать тут отзывы и комментарии..


  • Вы не зарегистрированы

Лучшие статьи

Template not found: /templates/bootstrap5/topnews.tplTemplate not found: /templates/bootstrap5/topnews.tplTemplate not found: /templates/bootstrap5/topnews.tpl

Скрипты казино