Файл: public_html/pages/account.php
Строк: 252
<?php
#-----------------------------------------------------#
# ********* ROTORCMS ********* #
# Made by : VANTUZ #
# E-mail : visavi.net@mail.ru #
# Site : http://pizdec.ru #
# WAP-Site : http://visavi.net #
# ICQ : 36-44-66 #
# Вы не имеете право вносить изменения в код скрипта #
# для его дальнейшего распространения #
#-----------------------------------------------------#
require_once ('../includes/start.php');
require_once ('../includes/functions.php');
require_once ('../includes/header.php');
include_once ('../themes/' . $config['themes'] . '/index.php');
if (isset($_GET['act'])) {
$act = check($_GET['act']);
} else {
$act = 'index';
}
show_title('setting.png', 'Мои данные');
$config['newtitle'] = 'Мои данные';
if (is_user()) {
switch ($act):
# ###########################################################################################
# # Изменение e-mail ##
# ###########################################################################################
case 'index':
echo '<img src="../images/img/document.gif" alt="image" /> ';
echo '<a href="anketa.php?' . SID . '">Моя анкета</a> / ';
echo '<a href="profil.php?' . SID . '">Мой профиль</a> / ';
echo '<b>Мои данные</b><hr />';
echo '<b><big>Изменение E-mail</big></b><br />';
if (empty($udata['users_email']) || $udata['users_point'] >= $config['editmailpoint']) {
echo '<div class="form">';
echo '<form method="post" action="account.php?act=editmail&uid=' . $_SESSION['token'] . '&' . SID . '">';
echo 'Е-mail:<br />';
echo '<input name="meil" maxlength="50" value="' . $udata['users_email'] . '" /><br />';
echo 'Текущий пароль:<br />';
echo '<input name="provpass" type="password" /><br />';
echo '<input value="Изменить" type="submit" /></form></div><br />';
} else {
show_error('Изменять e-mail могут пользователи у которых более ' . points($config['editmailpoint']) . '!');
}
# ###########################################################################################
# # Изменение ника ##
# ###########################################################################################
echo '<b><big>Изменение ника</big></b><br />';
if ($udata['users_point'] >= $config['editnickpoint']) {
echo '<div class="form">';
echo '<form method="post" action="account.php?act=editnick&uid=' . $_SESSION['token'] . '&' . SID . '">';
echo 'Ваш ник:';
if (!empty($udata['users_nickname'])) {
echo ' (<a href="account.php?act=delnick&uid=' . $_SESSION['token'] . '&' . SID . '">Удалить</a>)';
}
echo '<br />';
echo '<input name="nickname" maxlength="20" value="' . $udata['users_nickname'] . '" /><br />';
echo '<input value="Изменить" type="submit" /></form></div><br />';
} else {
show_error('Изменять ник могут пользователи у которых более ' . points($config['editnickpoint']) . '!');
}
# ###########################################################################################
# # Восстановление пароля ##
# ###########################################################################################
echo '<b><big>Восстановление пароля</big></b><br />';
echo '<div class="form">';
echo '<form method="post" action="account.php?act=editsec&uid=' . $_SESSION['token'] . '&' . SID . '">';
echo 'Секретный вопрос:';
if (!empty($udata['users_secquest'])) {
echo ' (<a href="account.php?act=delsec&uid=' . $_SESSION['token'] . '&' . SID . '">Удалить</a>)';
}
echo '<br /><input name="secquest" maxlength="50" value="' . $udata['users_secquest'] . '" /><br />';
echo 'Ответ на вопрос:<br /><input name="secanswer" maxlength="30" /><br />';
echo 'Текущий пароль:<br /><input name="provpass" maxlength="20" /><br />';
echo '<input value="Изменить" type="submit" /></form></div><br />';
# ###########################################################################################
# # Изменение пароля ##
# ###########################################################################################
echo '<b><big>Изменение пароля</big></b><br />';
echo '<div class="form">';
echo '<form method="post" action="account.php?act=editpass&uid=' . $_SESSION['token'] . '&' . SID . '">';
echo 'Новый пароль:<br /><input name="newpass" maxlength="20" /><br />';
echo 'Повторите пароль:<br /><input name="newpass2" maxlength="20" /><br />';
echo 'Текущий пароль:<br /><input name="oldpass" maxlength="20" /><br />';
echo '<input value="Изменить" type="submit" /></form></div><br />';
break;
# ###########################################################################################
# # Изменение e-mail ##
# ###########################################################################################
case 'editmail':
$uid = check($_GET['uid']);
$meil = strtolower(check($_POST['meil']));
$provpass = check($_POST['provpass']);
if ($uid == $_SESSION['token']) {
if (empty($udata['users_email']) || $udata['users_point'] >= $config['editmailpoint']) {
if ($meil != $udata['users_email']) {
if (md5(md5($provpass)) == $udata['users_pass']) {
if (preg_match('#^([a-z0-9_-.])+@([a-z0-9_-.])+(.([a-z0-9])+)+$#', $meil)) {
$regmail = DB :: $dbh -> querySingle("SELECT `users_id` FROM `users` WHERE `users_email`=? LIMIT 1;", array($meil));
if (empty($regmail)) {
$blackmail = DB :: $dbh -> querySingle("SELECT `black_id` FROM `blackmail` WHERE `black_mail`=? LIMIT 1;", array($meil));
if (empty($blackmail)) {
DB :: $dbh -> query("UPDATE `users` SET `users_email`=? WHERE `users_login`=?", array($meil, $log));
$_SESSION['note'] = 'Ваши данные успешно изменены!';
header ("Location: account.php?" . SID);
exit;
} else {
show_error('Ошибка! Указанный вами адрес e-mail занесен в черный список!');
}
} else {
show_error('Ошибка! Указанный вами адрес e-mail уже используется в системе!');
}
} else {
show_error('Неправильный адрес e-mail, необходим формат name@site.domen!');
}
} else {
show_error('Ошибка! Пароль не совпадает с данными в профиле!');
}
} else {
show_error('Ошибка! Вы ввели ваш текущий адрес e-mail!');
}
} else {
show_error('Изменять e-mail могут пользователи у которых более ' . points($config['editmailpoint']) . '!');
}
} else {
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="account.php?' . SID . '">Вернуться</a><br />';
break;
# ###########################################################################################
# # Удаление ника ##
# ###########################################################################################
case 'delnick':
$uid = check($_GET['uid']);
if ($uid == $_SESSION['token']) {
if ($udata['users_point'] >= $config['editnickpoint']) {
if (!empty($udata['users_nickname'])) {
DB :: $dbh -> query("UPDATE `users` SET `users_nickname`=?, `users_timenickname`=? WHERE `users_login`=?", array('', SITETIME + 86400, $log));
save_nickname();
$_SESSION['note'] = 'Ваш ник успешно удален!';
header ("Location: account.php?" . SID);
exit;
} else {
show_error('Ошибка! У вас не установлен ник!');
}
} else {
show_error('Ошибка! У вас недостаточно актива для изменения ника!');
}
} else {
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="account.php?' . SID . '">Вернуться</a><br />';
break;
# ###########################################################################################
# # Изменение ника ##
# ###########################################################################################
case 'editnick':
$uid = check($_GET['uid']);
$nickname = check(trim($_POST['nickname']));
if ($uid == $_SESSION['token']) {
if ($udata['users_point'] >= $config['editnickpoint']) {
if ($udata['users_timenickname'] < SITETIME) {
if (preg_match('|^[0-9a-zA-Zа-яА-ЯЁё_.-s]+$|u', $nickname)) {
if (utf_strlen($nickname) >= 3 && utf_strlen($nickname) <= 20) {
if ($nickname != $udata['users_nickname']) {
$reglogin = DB :: $dbh -> querySingle("SELECT `users_id` FROM `users` WHERE lower(`users_login`)=? LIMIT 1;", array(rus_utf_tolower($nickname)));
if (empty($reglogin)) {
$regnick = DB :: $dbh -> querySingle("SELECT `users_id` FROM `users` WHERE lower(`users_nickname`)=? LIMIT 1;", array(rus_utf_tolower($nickname)));
if (empty($regnick)) {
$blacklogin = DB :: $dbh -> querySingle("SELECT `black_id` FROM `blacklogin` WHERE lower(`black_login`)=? LIMIT 1;", array(strtolower($nickname)));
if (empty($blacklogin)) {
DB :: $dbh -> query("UPDATE `users` SET `users_nickname`=?, `users_timenickname`=? WHERE `users_login`=?", array($nickname, SITETIME + 86400, $log));
save_nickname();
$_SESSION['note'] = 'Ваш ник успешно изменен!';
header ("Location: account.php?" . SID);
exit;
} else {
show_error('Ошибка! Выбранный вами ник занесен в черный список!');
}
} else {
show_error('Ошибка! Выбранный вами ник уже занят!!');
}
} else {
show_error('Ошибка! Выбранный вами ник используется кем-то в качестве логина!');
}
} else {
show_error('Ошибка! Вы уже используете выбранный вами ник!');
}
} else {
show_error('Ошибка! Слишком длинный или короткий ник! (от 3 до 20 символов)');
}
} else {
show_error('Недопустимые символы, разрешены символы русского и латинского алфавита, а также цифры!');
}
} else {
show_error('Ошибка! Изменять ник можно не чаще чем 1 раз в сутки!');
}
} else {
show_error('Ошибка! У вас недостаточно актива для изменения ника!');
}
} else {
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="account.php?' . SID . '">Вернуться</a><br />';
break;
# ###########################################################################################
# # Удаление вопроса ##
# ###########################################################################################
case 'delsec':
$uid = check($_GET['uid']);
if ($uid == $_SESSION['token']) {
if (!empty($udata['users_secquest'])) {
DB :: $dbh -> query("UPDATE `users` SET `users_secquest`=?, `users_secanswer`=? WHERE `users_login`=?", array('', '', $log));
$_SESSION['note'] = 'Секретный вопрос и ответ успешно удалены!';
header ("Location: account.php?" . SID);
exit;
} else {
show_error('Ошибка! У вас не установлен секретный вопрос!');
}
} else {
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="account.php?' . SID . '">Вернуться</a><br />';
break;
# ###########################################################################################
# # Изменение вопроса ##
# ###########################################################################################
case 'editsec':
$uid = check($_GET['uid']);
$secquest = check($_POST['secquest']);
$secanswer = check($_POST['secanswer']);
$provpass = check($_POST['provpass']);
if ($uid == $_SESSION['token']) {
if (md5(md5($provpass)) == $udata['users_pass']) {
if (utf_strlen($secquest) >= 3 && utf_strlen($secquest) <= 50) {
if (utf_strlen($secanswer) >= 3 && utf_strlen($secanswer) <= 30) {
DB :: $dbh -> query("UPDATE `users` SET `users_secquest`=?, `users_secanswer`=? WHERE `users_login`=?", array($secquest, md5(md5($secanswer)), $log));
$_SESSION['note'] = 'Секретный вопрос и ответ успешно изменены!';
header ("Location: account.php?" . SID);
exit;
} else {
show_error('Ошибка! Слишком длинный или короткий секретный ответ (от 3 до 30 символов)!');
}
} else {
show_error('Ошибка! Слишком длинный или короткий секретный вопрос (от 3 до 50 символов)!');
}
} else {
show_error('Ошибка! Текущий пароль не совпадает с данными в профиле!');
}
} else {
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="account.php?' . SID . '">Вернуться</a><br />';
break;
# ###########################################################################################
# # Изменение пароля ##
# ###########################################################################################
case 'editpass':
$uid = check($_GET['uid']);
$newpass = check($_POST['newpass']);
$newpass2 = check($_POST['newpass2']);
$oldpass = check($_POST['oldpass']);
if ($uid == $_SESSION['token']) {
if (preg_match('|^[a-z0-9-]+$|i', $newpass)) {
if (md5(md5($oldpass)) == $udata['users_pass']) {
if ($log != $newpass) {
if (!ctype_digit($newpass)) {
if ($newpass == $newpass2) {
if (strlen($newpass) <= 20 && strlen($newpass) >= 3) {
DB :: $dbh -> query("UPDATE `users` SET `users_pass`=? WHERE `users_login`=?", array(md5(md5($newpass)), $log));
addmail($udata['users_email'], "Изменение пароля на сайте " . $config['title'], "Здравствуйте, " . nickname($log) . " nВами была произведена операция по изменению пароля nnВаш новый пароль: " . $newpass . " nСохраните его в надежном месте nnДанные инициализации: nIP: " . $ip . " nБраузер: " . $brow . " nВремя: " . date('j.m.y / H:i', SITETIME));
unset($_SESSION['log']);
unset($_SESSION['par']);
$_SESSION['note'] = 'Пароль успешно изменен!';
header ("Location: login.php?" . SID);
exit;
} else {
show_error('Ошибка! Слишком длинный или короткий новый пароль (От 3 до 20 символов)!');
}
} else {
show_error('Ошибка! Новые пароли не совпадают!');
}
} else {
show_error('Ошибка! Запрещен пароль состоящий только из цифр, используйте буквы!');
}
} else {
show_error('Ошибка! Пароль и логин должны отличаться друг от друга!');
}
} else {
show_error('Ошибка! Текущий пароль не совпадает с данными в профиле!');
}
} else {
show_error('Недопустимые символы в пароле, только знаки латинского алфавита, цифры и дефис!');
}
} else {
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="account.php?' . SID . '">Вернуться</a><br />';
break;
default:
header("location: account.php?" . SID);
exit;
endswitch;
} else {
show_login('Вы не авторизованы, чтобы изменять свои данные, необходимо');
}
echo '<img src="../images/img/homepage.gif" alt="image" /> <a href="../index.php?' . SID . '">На главную</a>';
include_once ("../themes/" . $config['themes'] . "/foot.php");
?>