Файл: newstats.ru/newstats.ru/system/model/pass.class.php
Строк: 49
<?php
// Автор проекта GEARBAKC
// Офф.сайт GEARNET.RU
// http://gearnet.ru/users/1
// Только эксклюзивные скрипты!
class pass_model{
public function pass(){
if(isset($_POST['mail'])){
if(Core::count("SELECT COUNT(*) FROM `users` WHERE `email` = ?", array($_POST['mail'])) == false){
Core::redirect('/pass', 'Такого пользователя не существует.');
}
$mail = $_POST['mail'];
$ank = Core::query("SELECT * FROM `user_sites` WHERE `id` = ?", array($_GET['get'])) -> fetch();
if(!preg_match('/[0-9a-z_-]+@[0-9a-z_-^.]+.[a-z]{2,6}/i', $mail)) $err = 'E-mail введен неверно<br />';
if(!$err){
$ank = Core::query("SELECT * FROM `users` WHERE `email` = ?", array($mail)) -> fetch();
$hash_pass=md5(mt_rand(1111,99999).$ank['id'].$ank['login']);
Core::query("UPDATE `users` SET `hash_pass_new` = ? WHERE `id`=?", array($hash_pass, $ank['id']));
$subject = " Восстановление пароля :: NewStats";
$regmail = "Здравствуйте, ".$ank['login']."!<br/><br />Для восстановления пароля перейдите по ссылке http://newstats.ru/pass/new_pass/".$hash_pass."<br/> Ссылка действительна до первой смены пароля или авторизации.<br /><br /><br />С Уважением команда топа NewStats.Ru.";
$adds="From: "support@$_SERVER[HTTP_HOST]" <support@$_SERVER[HTTP_HOST]>n";
$adds .= "Content-Type: text/html; charset=utf-8n";
mail($ank['email'],'=?utf-8?B?'.base64_encode($subject).'?=',$regmail,$adds);
Core::redirect('/pass', 'Инструкция по восстановлению отправлена вам на e-mail.');
}else{
Core::redirect('/pass', $err);
}
}
}
public function new_pass(){
if(isset($_POST['hash_pass']) || isset($_POST['pass1']) || isset($_POST['pass2'])){
$pass1 = md5(md5($_POST['pass1']));
$pass2 = md5(md5($_POST['pass2']));
$hash = Protect::generate(32);
$hash_pass = $_POST['hash_pass'];
$pass = $_POST['pass1'];
$ank = Core::query("SELECT * FROM `users` WHERE `hash_pass_new` = ?", array($hash_pass)) -> fetch();
if($pass1!=$pass2)$err='Пароли не совпадают';
if($pass_star!=$user['pass'])$err='Старый пароль введен не верно';
if($pass1==$ank['pass'])$err='Старый пароль совпадает с новым';
if(strlen($pass) < 6 or strlen($pass) > 20)$err='Пароль должен быть в пределах 6 - 20 символов';
if(!$err){
Core::query("UPDATE `users` SET `hash` = ? WHERE `id` = ?", array($hash, $ank['id']));
Core::query("UPDATE `users` SET `pass` = ?, `hash_pass_new`='' WHERE `id`=?", array($pass1, $ank['id']));
setcookie('userlogin', $ank['login'], time()+86400*365, '/');
setcookie('userhash', $hash, time()+86400*365, '/');
$subject = "Восстановление пароля :: NewStats";
$regmail = "Здравствуйте, ".$ank['login'].'!<br/><br />На Вашем профиле был восстановлен пароль.<br/> Новые данные для входа:<br/>Логин: '.$ank['login'].' <br/>Пароль: '.$pass."<br /><br /><br />С Уважением команда топа NewStats.Ru.";
$adds="From: "support@$_SERVER[HTTP_HOST]" <support@$_SERVER[HTTP_HOST]>n";
$adds .= "Content-Type: text/html; charset=utf-8n";
mail($ank['email'],'=?utf-8?B?'.base64_encode($subject).'?=',$regmail,$adds);
Core::redirect('/cabinet', 'Пароль успешно восстановлен. Новый пароль выслан вам на e-mail');
}else{
Core::redirect('?', $err);
}
}
}
}
?>