<?php
if ($module == 'logout' and $_SESSION['USER_LOGIN_IN'] == 1) {
if ($_COOKIE['user']) {
setcookie('user', '', strtotime('-30 days'), '/');
unset($_COOKIE['user']);
}
session_unset();
exit(header('Location: /'));
}
ULogin(0);
if ($module == 'restore' and !$param['code'] and substr($_SESSION['RESTORE'], 0, 4) == 'wait') MessageSend(1,'Вы уже отправили заявку на восстановление пароля. Проверьте ваш Email <b>'.substr($_SESSION['RESTORE'], 5).'</b>.');
if ($module == 'restore' and $_SESSION['RESTORE'] and substr($_SESSION['RESTORE'], 0, 4) != 'wait') MessageSend(1, 'Ваш пароль ранее уже был изменен. Для входа используйте новый пароль <b>'.$_SESSION['RESTORE'].'</b>', '/login');
if ($module == 'restore' and !$param['code']){
$Row = mysqli_fetch_assoc(mysqli_query($connect, 'SELECT `login` FROM `users` WHERE `id` = '.str_replace(md5('Hello'), '', $param['code'])));
if(!$Row['login']) MessageSend(1,'Невозможно восстановить пароль.', '/login');
$Random = RandomString(15);
$_SESSION['RESTORE'] = $Random;
mysqli_query($connect, "UPDATE `users` SET `password` ='".GenPass($Random, $Row['login'])."' WHERE `login` = '$Row[login]'");
MessageSend(1,'Пароль успешно изменен, для входа используйте новый пароль <b>'.$Random.'</b>', 'login');
}
if ($module == 'restore' and $_POST['enter']){
$_POST['login'] = FormChars($_POST['login']);
if(!$_POST['login']) MessageSend(1,'Невозможно обработать форму.');
$Row = mysqli_fetch_assoc(mysqli_query($connect, "SELECT `id`, `email` FROM `users` WHERE `login` = '$_POST[login]'"));
if(!$Row['email']) MessageSend(1,'Пользователь не найден.');
mail ($Row['email'], 'Web-platform', 'Ссылка для восстановления: http://forum/account/restore/code/'.md5('Hello').$Row['id'], 'From: Web-platform');
$_SESSION['RESTORE'] = 'wait_'.$Row['email'];
MessageSend(2, 'На ваш Email <b>'.HideEmail($Row['email']).'</b> отправлено сообщение о подтверждении смены пароля');
}
if ($module == 'register' and $_POST['enter']) {
$_POST['name'] = FormChars($_POST['name']);
$_POST['login'] = FormChars($_POST['login']);
$_POST['email'] = FormChars($_POST['email']);
$_POST['password'] = GenPass(FormChars($_POST['password']), $_POST['login']);
if (!$_POST['login'] or !$_POST['password'] or !$_POST['name'] or !$_POST['email']) MessageSend(1,'Невозможно обработать форму.');
$Row = mysqli_fetch_assoc(mysqli_query($connect, "SELECT `login` FROM `users` WHERE `login` = '$_POST[login]'"));
if($Row['login']) exit('Логин <b>'.$_POST['login'].'</b> уже используется.');
$Row = mysqli_fetch_assoc(mysqli_query($connect, "SELECT `email` FROM `users` WHERE `email` = '$_POST[email]'"));
if($Row['email']) exit('Email <b>'.$_POST['email'].'</b> уже используется.');
mysqli_query($connect, "INSERT INTO `users` (`login`, `password`, `name`, `regdate`, `email`, `avatar`, `country`) VALUES ('$_POST[login]', '$_POST[password]', '$_POST[name]', NOW(), '$_POST[email]', 0, 0)");
$code = base64_encode($_POST['email']);
mail ($_POST['email'], 'Регистрация на Web-platform', 'Ссылка для активации: http://forum/account/activate/code/'.$code, 'From: Web-platform');
MessageSend(3, 'Регистрация аккаунта успешно завершена, на указанный email адрес <b>'.$_POST['email'].'</b> отправленно письмо о подтверждении регистрации.');
}
else if ($module == 'activate' and $param['code']) {
$email = base64_decode($param['code']);
// Проверяем, активен ли email
$result = mysqli_query($connect, "SELECT `active` FROM `users` WHERE `email` = '$email'");
$user = mysqli_fetch_assoc($result);
if ($user && $user['active'] == 0) {
// Если email не активен, активируем его и устанавливаем сессию
$_SESSION['USER_ACTIVE_EMAIL'] = $email;
mysqli_query($connect, "UPDATE `users` SET `active` = 1 WHERE `email` = '$email'");
MessageSend(3, 'Email <b>'.$email.'</b> подтвержден.', '/login');
} else {
// Если email уже активен или не найден, выводим ошибку
MessageSend(1, 'Email адрес уже подтвержден или недействителен.', '/login');
}
}
else if ($module == 'login' and $_POST['enter']) {
$_POST['login'] = FormChars($_POST['login']);
$_POST['password'] = GenPass(FormChars($_POST['password']), $_POST['login']);
if(!$_POST['login'] or !$_POST['password']) MessageSend(1,'Невозможно обработать форму.');
$Row = mysqli_fetch_assoc(mysqli_query($connect, "SELECT `password`, `active` FROM `users` WHERE `login` = '$_POST[login]'"));
if($Row['password'] != $_POST['password']) MessageSend(1,'Неверный логин или пароль.');
if($Row['active'] == 0) MessageSend(1,'Аккаунт пользователя <b>'.$_POST['login'].'</b> не подтвержден.');
$Row = mysqli_fetch_assoc(mysqli_query($connect, "SELECT `id`, `name`, `regdate`, `email` FROM `users` WHERE `login` = '$_POST[login]'"));
$_SESSION['USER_ID'] = $Row['id'];
$_SESSION['USER_NAME'] = $Row['name'];
$_SESSION['USER_REGDATE'] = $Row['regdate'];
$_SESSION['USER_EMAIL'] = $Row['email'];
$_SESSION['USER_LOGIN_IN'] = 1;
if ($_REQUEST['remember']) setcookie('user', $_POST['password'], strtotime('+30 days'), '/');
exit(header('Location: /profile'));
}
?>
Вылезает "Ошибка: Невозможно восстановить пароль." хотя должен был отправится email с новым паролем