27.07.14, 11:50
0 комментарий
  DLE Хаки

Проверка E-mail на свободность при регистрации

Хак проверяет в БД повторяемость e-mail адресов и запрещает регистрацию с дубликатами.

Приступим к установке:
1.0 Открыть файл шаблона 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.0 Открыть файл 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.0 Открыть файл 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 = "".$lang['reg_ok_ajax'].""; else $buffer = "".$allow."";


Заменить на:

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) ? "" . $lang['reg_ok_ajax'] . "" : "" . $allow . ""; } elseif( isset($_POST['email']) ) { $email = $db->safesql(trim($_POST['email'])); $allow = check_email($email); $buffer = (!$allow) ? "Вы можете использовать данный E-Mail для регистрации" : "" . $allow . ""; }


Автор: Vitnet

Реклама

Напишите своё мнение

  • acuteaggressiveair_kissangel
    badbbbeachbeee
    biggrinbig_bossblumblush
    boastbombboredombye
    clappingcraycrazycurtsey
    dancedashdeclarediablo
    diroldon-t_mentiondownloaddrinks
    first_moveflirtfocusfool
    friendsgive_heartgive_rosegood
    hangheartheathelp
    hihunterhystericireful
    kingkisslaughlazy
    lolmail1mambaman_in_love
    mdamega_shokmoilmosking
    musicneanegativenew_russian
    okon_the_quietpardonparting
    partypilotpioneerpleasantry
    popcormpranksterprevedpunish
    roflrtfmrussiansad
    sarcasticscarescratchsearch
    secretsensoredshokshout
    slowsmilesmokesoldier
    soldier_girlsorryspitefulspruce_up
    stinkersuicidesunsuperstition
    swoonteasetenderthanks
    thisto_pick_ones_noseto_take_umbragetreaten
    umnikunknwvampirevava
    victorywackowhistlewink
    wizardyahooyesyu
    e101e102e103e104
    e105e106e107e108
    e109e110e111e112
    e113e114e115e116
    e117e118e119e120
    e121e122e123e124
    e125e126e127e128
    e129e130e131e132
    e133e134e135e136
    e137e138e139e140
    e141e142e143e144
    e145e146e147e148
    e149e150e151e152
    e153e154e155e156
    e157e158e159e160
    e161e162e163e164
    e165e166e167e168
    e169e170e171e172
    e173e174e175e176
    e177e178e179e180
    e181e182e183e184
    e185e186e187e188
    e189e190e191e192
    e193e194e195e196
    e197e198e199e200
    e201e202e203e204