Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Регистрация без ботов.
Скачать бесплатно Регистрация без ботов.
Версии DLE: 8.x
Лирика: Все мы знаем - ссылки регистрации не прячутся под ЧПУ (независимо от настройки ЧПУ), что, конечно, некрасиво, но терпимо, но вот то, что об этом осведомлен каждый тупой бот - вызывает гораздо больше раздражений...
Описание: Данный хак позволяет не только скрыть все ссылки регистрации под ЧПУ, но и обезопасить себя от ботов.
Действий немного. Начнем:
!!!ВНИМАНИЕ!!!
В данном примере к ссылкам регистрации будет добавлено значение "_999", которое можно изменить в зависимости от фантазии, но обязательно по всему тексту хака.
1. В файле .htaccess, после строчки:
RewriteEngine On
Вставить:
#Регистрация без ботов
RewriteRule ^register(/?)+$ index.php?do=register_rtiavto [L]
RewriteRule ^register/validating/(.*)(/?)+$ index.php?do=register_rtiavto&doaction=validating&id=$1 [L]
RewriteRule ^register/validating/nextstep/(.*)(/?)+$ index.php?do=register_rtiavto&doaction=validating&step=2&id=$1 [L]
2. В файле \engine\init.php,
I. вместо строчки:
$link_regist = ($config['ajax']) ? $PHP_SELF . "?do=register" onclick="DlePage('do=register'); return false;" : $PHP_SELF . "?do=register";
Вставить:
$link_regist = ($config['ajax']) ? $config['http_home_url'] . "register/" onclick="DlePage('do=register_999'); return false;" : $config['http_home_url'] . "register/";
II. вместо строчки:
$link_regist = ($config['ajax']) ? $PHP_SELF . "?do=register" onclick="DlePage('do=register'); return false;" : $PHP_SELF . "?do=register";
Вставить:
$link_regist = ($config['ajax']) ? $PHP_SELF . "?do=register_999" onclick="DlePage('do=register_999'); return false;" : $PHP_SELF . "?do=register_999";
3. В файле \engine\engine.php
I. вместо строки:
case "register" :
Вставить:
case "register_999" :
II. вместо строки:
elseif ($do == 'register') $nam_e = $lang['title_register'];
Вставить:
elseif ($do == 'register_999') $nam_e = $lang['title_register'];
3. В файле \engine\modules\register.php
I. вместо строки:
$row['template'] = str_replace( "{%validationlink%}", $config['http_home_url'] . "index.php?do=register&doaction=validating&id=" . $idlink, $row['template'] );
Вставить:
$row['template'] = str_replace( "{%validationlink%}", $config['http_home_url'] . "register/validating/{$idlink}/" , $row['template'] );
II. вместо строки:
$tpl->copy_template = "<form method="post" name="registration" onsubmit="if (!check_reg_daten()) {return false;};" id="registration" action="" . $config['http_home_url'] . "index.php?do=register">n" .
tpl->copy_template . " <input name="submit_reg" type="hidden" id="submit_reg" value="submit_reg" /> </form>";
Вставить:
$tpl->copy_template = "<form method="post" name="registration" onsubmit="if (!check_reg_daten()) {return false;};" id="registration" action="" . $config['http_home_url'] . "register/">n" .
$tpl->copy_template . " <input name="submit_reg" type="hidden" id="submit_reg" value="submit_reg" /> </form>";
III. вместо строки:
msgbox( $lang['all_info'], $lang['confirm_ok'] . "<br /><br /><a href="" . $config['http_home_url'] . "index.php?do=register&doaction=validating&step=2&id=" . rawurlencode( $_REQUEST['id'] ) . "">" . $lang['reg_next'] . "</a>" );
Вставить:
msgbox( $lang['all_info'], $lang['confirm_ok'] . "<br /><br /><a href="" . $config['http_home_url'] . "register/validating/".rawurlencode($_REQUEST['id']) . "/nextstep/" . "">" . $lang['reg_next'] . "</a>" );
IV. вместо строки:
<input name="do" type="hidden" id="do" value="register" />;
Вставить:
<input name="do" type="hidden" id="do" value="register_999" />;
4. В файле \engine\modules\static.php
I. вместо строки:
if( $_GET['page'] == "dle-rules-page" ) if( $do != "register" ) {
Вставить:
if( $_GET['page'] == "dle-rules-page" ) if( $do != "register_999" ) {
II. вместо строки:
$tpl->set( '{ACCEPT-DECLINE}', "<form method="post" name="registration" id="registration" action="" . $config['http_home_url'] . "index.php?do=register"><input type="submit" class="bbcodes" value="{$lang['rules_accept']}" /> <input type="button" class="bbcodes" value="{$lang['rules_decline']}" onclick="history.go(-1); return false;" /><input name="dle_rules_accept" type="hidden" id="dle_rules_accept" value="yes" /></form>" );
Вставить:
$tpl->set( '{ACCEPT-DECLINE}', "<form method="post" name="registration" id="registration" action="" . $config['http_home_url'] . "register/"><input type="submit" class="bbcodes" value="{$lang['rules_accept']}" /> <input type="button" class="bbcodes" value="{$lang['rules_decline']}" onclick="history.go(-1); return false;" /><input name="dle_rules_accept" type="hidden" id="dle_rules_accept" value="yes" /></form>" );
Идем по ссылке http://www.sitename.ru/register/ и наслаждаемся результатом.
Проверено на версии 8.5, но будет работать и на более ранних.
Всем спасибо и удачи!