<?php
/********************************************************************/
/* */
/* Lineage2 DLE Module, Copyright © 2007-2009, hellEVIL TEAM */
/*
http://www.hellevil.net */
/* */
/********************************************************************/
if(!defined('DATALIFEENGINE')) {
die("Hacking attempt!");
}
$l2login = isset($_REQUEST["l2login"]) ? strtolower($dbl->escape($_REQUEST["l2login"])) : "";
$l2password = isset($_REQUEST["l2password"]) ? getPasswordHash($_REQUEST["l2password"]) : "";
$l2password_tmp = isset($_REQUEST["l2password"]) ? $dbl->escape($_REQUEST["l2password"]) : "";
$l2hash = isset($_REQUEST["l2hash"]) ? strtolower($dbl->escape($_REQUEST["l2hash"])) : "";
$l2email = isset($_REQUEST["l2email"]) ? strtolower($dbl->escape($_REQUEST["l2email"])) : "";
$error_msg = false;
$registered = false;
/*
* Регистрация
*/
if ($_action == "reg") {
if (empty($_REQUEST["l2login"]) || empty($_REQUEST["l2password"]) || empty($_REQUEST["l2password2"]) || empty($_REQUEST["l2email"]) || empty($_REQUEST["l2answer"]) || empty($_REQUEST["l2question"])) {
$error_msg = "Ошибка при регистрации, заполните все поля!";
} elseif ($l2captcha != true) {
$error_msg = "Ошибка при регистрации, код безопасности не соответствует отображённому!";
} elseif (strlen($_REQUEST["l2login"]) > 16 || strlen($_REQUEST["l2login"]) < 4) {
$error_msg = "Ошибка при регистрации, логин должен быть не меньше 4 и не больше 16 символов!";
} elseif ($_REQUEST["l2password"] != $_REQUEST["l2password2"]) {
$error_msg = "Ошибка при регистрации, пароли не совпадают!";
} elseif (strlen($_REQUEST["l2answer"]) < 4 || strlen($_REQUEST["l2question"]) < 4) {
$error_msg = "Ошибка при регистрации, вопрос и ответ должны быть не меньше 4 символов!";
} elseif (!checkEmail($_REQUEST["l2email"])) {
$error_msg = "Ошибка при регистрации, email указан не верно!";
} elseif ($dbl->sql_numrows($dbl->sql_query("SELECT * FROM `accounts` WHERE `login`='{$l2login}' LIMIT 1"))) {
$error_msg = "Ошибка при регистрации, аккаунт существует!";
} elseif ($dbl->sql_numrows($dbl->sql_query("SELECT * FROM `accounts_tmp` WHERE `login_tmp`='{$l2login}' LIMIT 1"))) {
$error_msg = "Ошибка при регистрации, аккаунт существует, но не активирован!";
} elseif ($dbl->sql_numrows($dbl->sql_query("SELECT * FROM `accounts_tmp` WHERE `email`='{$l2email}' LIMIT 1"))) {
$error_msg = "Ошибка при регистрации, указанный email уже используется!";
}
if ($error_msg == false) {
if ($la2config["registration"]["email_check"] == true) {
$l2hash = md5($l2login.$l2email.time());
$dbl->sql_query("INSERT INTO `accounts_tmp` (`login_tmp`, `password_tmp`, `email`, `answer`, `question`, `hash`, `active`) VALUES ('{$l2login}', '{$l2password_tmp}', '{$dbl->escape($_REQUEST["l2email"])}', '{$dbl->escape($_REQUEST["l2answer"])}', '{$dbl->escape($_REQUEST["l2question"])}', '{$l2hash}', '0')");
$l2link = $config['http_home_url']."?do=lineage&module=registration&action=check&l2login={$l2login}&l2hash={$l2hash}";
// Отправка письма
include_once ENGINE_DIR.'/classes/mail.class.php';
$mail = new dle_mail($config);
$message = "Спасибо за регистрацию!\n\n";
$message.= "Для активации аккаунта вы должны пройти по ссылке: {$l2link}\n\n";
$message.= "----------------------------\n";
$message.= "С уважением, Администрация.\n";
$message.= "{$config['http_home_url']}";
$row = $db->super_query("SELECT template FROM " . PREFIX . "_email where name='feed_mail' LIMIT 0,1");
$mail->send ($l2email, "Активация аккаунта", $message);
if ($mail->send_error) $error_msg = "Ошибка при отправке почты ".$mail->smtp_msg;
else $lineage = "<div style='color: red; text-align: center;'><b>Ссылка для активации аккаунта выслана! Проверьте электронную почту!</b></div>";
} else {
$dbl->sql_query("INSERT INTO `accounts_tmp` (`login_tmp`, `email`, `answer`, `question`, `active`) VALUES ('{$l2login}', '{$l2email}', '{$dbl->escape($_REQUEST["l2answer"])}', '{$dbl->escape($_REQUEST["l2question"])}', '1')");
if ($dbl->sql_affectedrows() == 1) {
$dbl->sql_query_jdb("insertAccount", array("login" => $l2login, "password" => $l2password));
if ($dbl->sql_affectedrows() == 1) {
$lineage = "<div style='text-align: center;'><b>Поздравляем, Вы успешно зарегистрировали аккаунт! Приятной игры.</b></div>";
$registered = true;
} else {
$error_msg = "Неизвестная ошибка, попробуйте еще раз!";
}
} else {
$error_msg = "Неизвестная ошибка, попробуйте еще раз!";
}
}
}
}
/*
* Подтверждение электронной почты
*/
if ($la2config["registration"]["email_check"] && $_action == "check") {
$account_data = $dbl->sql_fetchrow($dbl->sql_query("SELECT `password_tmp`, `email`, `hash` FROM `accounts_tmp` WHERE `login_tmp` = '{$l2login}' AND `active` = '0'"));
if (!empty($l2hash) && $dbl->sql_numrows() == 1 && $account_data["hash"] == $l2hash) {
$l2password = getPasswordHash($account_data["password_tmp"]);
$l2password_tmp = $account_data["password_tmp"];
$l2email = $account_data["email"];
$dbl->sql_query("UPDATE `accounts_tmp` SET `password_tmp` = '', `hash` = '', `active` = '1' WHERE `login_tmp`='{$l2login}'");
$dbl->sql_query_jdb("insertAccount", array("login" => $l2login, "password" => $l2password));
if ($dbl->sql_affectedrows() == 1) {
$lineage = "<div style='text-align: center;'><b>Поздравляем, Вы успешно зарегистрировали аккаунт! Приятной игры.</b></div>";
$registered = true;
} else {
$error_msg = "Неизвестная ошибка, попробуйте еще раз!";
}
} else {
$error_msg = "Неверная или устаревшая ссылка на активацию!";
}
}
/*
* Уведомление на email о регистрации
*/
if ($registered == true && $la2config["registration"]["email_success"]) {
include_once ENGINE_DIR.'/classes/mail.class.php';
$mail = new dle_mail($config);
$message = "Спасибо за регистрацию!\n\n";
$message.= "Ваш логин: {$l2login}\n";
if ($la2config["registration"]["email_password"] == true)
$message.= "Ваш пароль: {$l2password_tmp}\n";
$message.= "----------------------------\n";
$message.= "С уважением, Администрация.\n";
$message.= "{$config['http_home_url']}";
$mail->send($l2email, "Благодарим за регистрацию", $message);
if ($mail->send_error) msgbox ("Ошибка при отправке почты", $mail->smtp_msg);
}
/*
* Вывод ошибки
*/
if (empty($error_msg) == false) {
$lineage = "
<div style='color: red; text-align: center;'><b>{$error_msg}</b></div>
<br />
<div style='text-align: center;'><a href='{$_link}&module=registration'>назад</a></div>
";
}
/*
* Форма регистрации
*/
if ($_action == "") {
$tpl->load_template($tpldir.'/lineage/register.tpl');
$tpl->set('{url}',$config['http_home_url']);
if ($la2config["captcha"] == true) {
$tpl->set_block("'\\[sec_code\\](.*?)\\[/sec_code\\]'si","\\1");
$tpl->set('{reg_code}',"{$config['http_home_url']}/engine/lineage/captcha/index.php?".session_name()."=".session_id());
} else {
$tpl->set_block("'\\[sec_code\\](.*?)\\[/sec_code\\]'si","");
$tpl->set('{reg_code}',"");
}
$tpl->compile('register');
$lineage = $tpl->result["register"];
$tpl->clear();
}
?>