«Автор:» неизвестный
Адаптация под новую версию: Herurg
Данный работает только хак с DLE 9.x + IP.Board 3.1.x (протестировано)
Хак дле сделать Единую регистрация для форума с Dle 9.x и IP.Board 3.1
Итак установка :Хак Единая регистрация для форума с DLE и IP.Board 3.1
Открываем: dle/engine/modules/reg
Ищем:
Добавить ниже:
Найти:
Заменить на:
Найти:
Найти:
Добавить ниже:
Найти:
Вот тут другой вариант в с register.php..
Вставить выше:
Открываем: dle/engine/ajax/registration.php
Найти:
Добавить ниже:
Хак дле протестирован , работает единая регистрация только в одну сторону: Регистрируясь на портале DLE вы автоматически регистрируетесь на форуме IP.Board
Установка ЗАКОНЧЕНА!
Ищем:
require_once ENGINE_DIR . '/classes/parse.class.php';
Добавить ниже:
$ipb_dle_lan[0] = "Данное имя уже используется на форуме."; $db_ipb_user = "пользователь"; $db_ipb_password = "пароль"; $db_ipb_namedb = "имя_базы"; $db_ipb_local = "localhost"; $db_ipb_error = 1; // 1 - показывать ошибки в соединении с бд форума, 0 - нет $db_prefix_ipb = "префикс_если_его_нету_оставить_пустым";$ipb = new db;$ipb->connect($db_ipb_user, $db_ipb_password, $db_ipb_namedb, $db_ipb_local, $db_ipb_error);
Найти:
global $lang, $db, $banned_info, $relates_word;
Заменить на:
global $lang, $db, $banned_info, $relates_word, $ipb, $ipb_dle_lan, $db_prefix_ipb;
Найти:
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users WHERE email = '$email' OR LOWER(name) REGEXP '[[:<:]]{$search_name}[[:>:]]' OR name = '$name'" );Добавить ниже:$ipb_test_name = $ipb->super_query ("SELECT COUNT(*) as count FROM {$db_prefix_ipb}members where name = '".strtolower($name)."'"); if ($ipb_test_name ['count'] > 0) $stop .= $ipb_dle_lan[0];
Найти:
$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );
Добавить ниже:
$ipb_dle = new ipb_dle; $salt = $ipb_dle->generate_password_salt(5); $salt = addslashes($salt); $ph = $ipb_dle->generate_compiled_passhash($salt, md5($_POST['password1']) ); $insert_ipb = $ipb->insert_id(); //ид вставки $member_key = $ipb_dle->generate_auto_log_in_key(); $key_expire = $member_key * 60 * 60 * 24; $ipb->query("INSERT INTO `{$db_prefix_ipb}members` ( member_id, name, members_l_username, members_display_name, members_l_display_name, members_seo_name, member_login_key, member_login_key_expire, email, member_group_id, joined, ip_address, time_offset, allow_admin_mails, language, msg_show_notification, members_auto_dst, members_pass_hash, members_pass_salt ) VALUES ( 0, '$name', '".strtolower($name)."', '$name', '".strtolower($name)."', '".strtolower($name)."', '".$ipb_dle->generate_auto_log_in_key()."', '$key_expire', '$email', '3', '".time()."', '$_IP', '3', '1', '1', '1', '0', '$ph', '$salt' )"); $ipb_st = $ipb->super_query("select * from {$db_prefix_ipb}cache_store where cs_key = 'stats'"); $st_arr = unserialize($ipb_st['cs_value']); $st_arr['mem_count']++; $st_arr['last_mem_name'] = $name; $st_arr['last_mem_id'] = $insert_ipb; $st_arr2 = serialize($st_arr); $ipb->query("UPDATE {$db_prefix_ipb}cache_store set cs_value = '$st_arr2' where cs_key = 'stats'");
Найти:
?>
Вот тут другой вариант в с register.php..
Открываем:
dle/engine/modules/register.php
пробел, тут другие коды правильно.
дальше
Найти:
?>
Вставить выше
dle/engine/modules/register.php
пробел, тут другие коды правильно.
дальше
Найти:
?>
Вставить выше
class ipb_dle{ function generate_password_salt($len=5) { $salt = ''; for ( $i = 0; $i < $len; $i++ ) { $num = rand(33, 126); if ( $num == '92' ) { $num = 93; } $salt .= chr( $num ); } return $salt; } function generate_compiled_passhash($salt, $md5_once_password) { return md5( md5( $salt ) . $md5_once_password ); } function generate_auto_log_in_key($len=60) { $pass = $this->generate_password_salt( $len ); return md5($pass); }}
Вставить выше:
class ipb_dle{ function generate_password_salt($len=5) { $salt = ''; for ( $i = 0; $i < $len; $i++ ) { $num = rand(33, 126); if ( $num == '92' ) { $num = 93; } $salt .= chr( $num ); } return $salt; } function generate_compiled_passhash($salt, $md5_once_password) { return md5( md5( $salt ) . $md5_once_password ); } function generate_auto_log_in_key($len=60) { $pass = $this->generate_password_salt( $len ); return md5($pass); }}
Открываем: dle/engine/ajax/registration.php
Найти:
$db->query ("SELECT name FROM " . USERPREFIX . "_users WHERE LOWER(name) REGEXP '[[:<:]]{$search_name}[[:>:]]' OR name = '$name'"); if ($db->num_rows() > 0) { $stop .= $lang['reg_err_20']; }
Добавить ниже:
$ipb_dle_lan[0] = "Данное имя уже используется на форуме."; $db_ipb_user = "пользователь"; $db_ipb_password = "пароль"; $db_ipb_namedb = "имя_базы"; $db_ipb_local = "localhost"; $db_ipb_error = 1; // 1 - показывать ошибки в соединении с бд форума, 0 - нет $db_prefix_ipb = "префикс_если_его_нету_оставить_пустым"; $ipb = new db; $ipb->connect($db_ipb_user, $db_ipb_password, $db_ipb_namedb, $db_ipb_local, $db_ipb_error); $ipb_test_name = $ipb->super_query ("SELECT COUNT(*) as count FROM {$db_prefix_ipb}members where name = '".strtolower($name)."'"); if ($ipb_test_name ['count'] > 0) $stop .= $ipb_dle_lan[0];
Хак дле протестирован , работает единая регистрация только в одну сторону: Регистрируясь на портале DLE вы автоматически регистрируетесь на форуме IP.Board
Установка ЗАКОНЧЕНА!
Рекомендуем скачать хак Единая регистрация для форума с DLE 9.x и IP.Board 3.1
edinaya-registraciya-s-dle-9.-ip.board-3.1.rar [2,58 Kb] (cкачиваний: 116)