Просмотр файла love/pass.php

Размер файла: 5.92Kb
<?
include_once '../sys/inc/start.php';
include_once '../sys/inc/compress.php';
include_once '../sys/inc/sess.php';
include_once '../sys/inc/home.php';
include_once '../sys/inc/settings.php';
include_once '../sys/inc/db_connect.php';
include_once '../sys/inc/ipua.php';
include_once '../sys/inc/fnc.php';
include_once '../sys/inc/shif.php';
$show_all=true; // показ для всех
include_once '../sys/inc/user.php';
only_unreg();
$set['title']='Восстановление пароля';
include_once '../sys/inc/thead.php';
title();






if (isset($_POST['nick']) && isset($_POST['mail']) && $_POST['nick']!=NULL && $_POST['mail']!=NULL)
{
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `nick` = '".my_esc($_POST['nick'])."'"), 0)==0)
{
$err = "Пользователь с таким логином не зарегистрирован";
}
elseif (mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `nick` = '".my_esc($_POST['nick'])."' AND `ank_mail` = '".my_esc($_POST['mail'])."'"), 0)==0)
{
$err ='Неверный адрес E-mail или информация о E-mail отсутствует';
}
else 
{
$q = mysql_query("SELECT * FROM `user` WHERE `nick` = '".my_esc($_POST['nick'])."' LIMIT 1");
$user2 = mysql_fetch_assoc($q);
$new_sess=substr(md5(passgen()), 0, 20);
$subject = "Восстановление пароля";
$regmail = "Здравствуйте $user2[nick]<br />
Вы активировали восстановление пароля<br />
Для установки нового пароля перейдите по ссылке:<br />
<a href='http://$_SERVER[HTTP_HOST]/pass.php?id=$user2[id]&amp;set_new=$new_sess'>http://$_SERVER[HTTP_HOST]/pass.php?id=$user2[id]&amp;set_new=$new_sess</a><br />
Данная ссылка действительна до первой авторизации под своим логином ($user2[nick])<br />
С уважением, администрация сайта<br />
";
$adds="From: \"password@$_SERVER[HTTP_HOST]\" <password@$_SERVER[HTTP_HOST]>\n";
//$adds = "From: <$set[reg_mail]>\n";
//$adds .= "X-sender: <$set[reg_mail]>\n";
$adds .= "Content-Type: text/html; charset=utf-8\n";
mail($user2['ank_mail'],'=?utf-8?B?'.base64_encode($subject).'?=',$regmail,$adds);

mysql_query("UPDATE `user` SET `sess` = '$new_sess' WHERE `id` = '$user2[id]' LIMIT 1");

msg("Ссылка для установки нового пароля отправлена на e-mail \"$user2[ank_mail]\"");
}
}


if (isset($_GET['id']) && isset($_GET['set_new']) && strlen($_GET['set_new'])==20 && 
mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = '".intval($_GET['id'])."' AND `sess` = '".my_esc($_GET['set_new'])."'"), 0)==1)
{
$q = mysql_query("SELECT * FROM `user` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1");
$user2 = mysql_fetch_assoc($q);

if (isset($_POST['pass1']) && isset($_POST['pass2']))
{
if ($_POST['pass1']==$_POST['pass2'])
{
if (utf8_strlen($_POST['pass1'])<6)$err='По соображениям безопасности новый пароль не может быть короче 6-ти символов';
if (utf8_strlen($_POST['pass1'])>32)$err='Длина пароля превышает 32 символа';
}
else $err='Новый пароль не совпадает с подтверждением';

if (!isset($err)){
setcookie('id_user', $user2['id'], time()+60*60*24*365);
mysql_query("UPDATE `user` SET `pass` = '".shif($_POST['pass1'])."' WHERE `id` = '$user2[id]' LIMIT 1");
setcookie('pass', cookie_encrypt($_POST['pass1'],$user2['id']), time()+60*60*24*365);
msg('Пароль успешно изменен');
}
}




err();
aut();

$smarty = new Smarty_conf();
$smarty->assign('form_title','Восстановление пароля');
$smarty->assign('method','POST');
$smarty->assign('action',"/pass.php?id=$user2[id]&amp;set_new=".esc($_GET['set_new'],1)."&amp;$passgen");
$elements=array();
$elements[]=array('type'=>'input_text', 'title' => 'Логин', 'br'=>1, 'info'=>array('name' => 'nick','disabled' =>'disabled','value'=>$user2['nick']));
$elements[]=array('type'=>'password', 'title' => 'Новый пароль', 'br'=>1, 'info'=>array('name' => 'pass1'));
$elements[]=array('type'=>'password', 'title' => 'Подтверждение', 'br'=>1, 'info'=>array('name' => 'pass2'));

$elements[]=array('type'=>'submit', 'br'=>0, 'info'=>array('value'=>'Сохранить','name'=>'save')); // кнопка
$smarty->assign('el',$elements);
$smarty->display('input.form.tpl');

}
else
{
err();
aut();

$smarty = new Smarty_conf();
$smarty->assign('form_title','Восстановление пароля');
$smarty->assign('method','POST');
$smarty->assign('action',"/pass.php?$passgen");
$elements=array();
$elements[]=array('type'=>'input_text', 'title' => 'Логин', 'br'=>1, 'info'=>array('name' => 'nick'));
$elements[]=array('type'=>'input_text', 'title' => 'E-mail', 'br'=>1, 'info'=>array('name' => 'mail'));
$elements[]=array('type'=>'text', 'value' => '* На ваш e-mail придет ссылка для установки нового пароля.', 'br'=>1);
$elements[]=array('type'=>'text', 'value' => '** Если у вас в анкете отсутствует запись о вашем e-mail, восстановление пароля невозможно.', 'br'=>1);
$elements[]=array('type'=>'submit', 'br'=>0, 'info'=>array('value'=>'Далее')); // кнопка
$smarty->assign('el',$elements);
$smarty->display('input.form.tpl');
}


$smarty = new Smarty_conf();
$smarty->assign('menu',array(array('/aut.php','Авторизация'),array('/reg.php','Регистрация')));
$smarty->assign('menu_title','Навигация');
$smarty->display('links.links.tpl');
echo '<hr color="DeepSkyBlue1" hr noshade size="1"></font>';
echo "&laquo;<a href='/love/index.php'>В знакомства</a><br/>\n";
include_once '../sys/inc/tfoot.php';
?>