На форуме есть функция, которая позволяет при авторизации вводить E-Mail адрес, вместо логина, что значительно увеличиват уровень безопасности.
К сожалению в CMS DLE такой функции нет, но данный хак позволяет добавить её в движок, таким образом на сайте и на форуме возможно включить опцию авторизации по E-Mail адресу.
Если Вас не интересует данная опция, то можете не устанавливать хак.

############## Открыть /engine/inc/options.php

Найти:

showRow( $lang['opt_sys_ut'], $lang['opt_sys_utd'], makeDropDown( array ("0" => $lang['opt_sys_reg'], "1" => $lang['opt_sys_reg_1'] ), "save_con[registration_type]", "{$config['registration_type']}" ) );

Добавить ниже:

showRow( "Использовать почту вместо логина:", "Использовать почту вместо логина при авторизации?", makeDropDown( array ("1" => $lang['opt_sys_yes'], "0" => $lang['opt_sys_no'] ), "save_con[authorization_email]", "{$config['authorization_email']}" ) );

############## Открыть /engine/modules/sitelogin.php

Найти:

if( !preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\+]/", $_POST['login_name']) AND $allow_login) {

Заменить на:

if( ((!preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\+]/", $_POST['login_name']) AND !$config['authorization_email']) OR ( strlen($_POST['login_name']) <= 50 AND count(explode("@", $_POST['login_name'])) == 2 AND $config['authorization_email'])) AND $allow_login) {

Найти:

$member_id = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users where name='{$_POST['login_name']}' and password='" . md5( $_POST['login_password'] ) . "'" );

Заменить на:

$where = "name='{$_POST['login_name']}'";
if ($config['authorization_email'])
	$where = "email='{$_POST['login_name']}'";

$member_id = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users where ".$where." and password='" . md5( $_POST['login_password'] ) . "'" );

############## Открыть /engine/inc/include/functions.inc.php

Найти:

if( $username == "" or preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\+]/", $username ) or $md5_password == "" ) return false;

Заменить на:

if ($username == "" OR $md5_password == "")
	return false;
if (preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\+]/", $username) AND (!$config['authorization_email'] OR !$post))
	return false;
if ((strlen($username) > 50 OR count(explode("@", $username)) != 2) AND $config['authorization_email'] AND $post)
        return false;

Найти:

$member_id = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users WHERE name='$username' and password='$md5_password'" );

Заменить на:

$where = "name='{$username}'";
if ($config['authorization_email'])
	$where = "email='{$username}'";
            
$member_id = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users where ".$where." and password='".$md5_password."'" );


############## ############## ############## 
Автор: ShapeShifter
############## ############## ############## 