require('engine/common.inc.php'); switch(@$_GET['action']) { default: $html->start('Забыли пароль?', array('home')); echo '
Введите e-mail адрес указанный вами при регистрации, на него будет оправлено письмо с инструкциями.
'; $html->form_start('user_lost_password.php?action=post', 'post', '', false); $html->form_add_string('email', 'E-mail', '', 25); $html->form_actions(); $html->form_add_action('Отправить'); // $html->form_add_action('Отправить', 'skin/i/b/send.gif'); $html->form_stop(); $html->stop(); break; case 'post': $errors = array(); $email = trim($_POST['email']); $data = $sql->get('id, email, pass', DB.'users', 'email='.$sql->s($email)); if(!count($data)) $errors[] = 1; if(!count($errors)) { $recovery_hash = sha1('recoveryhash'.($data[0]['id']*2).$data[0]['pass']); $url = 'http://vladphoto.ru/user_lost_password.php?action=change&code='.$recovery_hash; @send_mail( // var_dump( 'vladPHOTO.ru', 'vladphotoru@yandex.ru', $email, 'Восстановление пароля', sprintf(file_get_contents('template/lost_password.txt'), $url ) ); header('location: user_lost_password.php?action=ok'); exit(); } else { $html->start('Забыли пароль?', array('home')); switch($errors[0]) { case 1: echo 'Пользователь таким адресом не найден.
'; break; } echo ''; $html->stop(); } break; case 'ok': $html->start('Забыли пароль?', array('home')); echo 'Пароль отправлен на указанный вами e-mail адрес.
'; echo ''; $html->stop(); break; case 'change': $recovery_hash = trim($_GET['code']); $user_id = false; foreach($sql->get('id, pass', DB.'users', 'is_disabled=0') as $row) { $row_hash = sha1('recoveryhash'.($row['id']*2).$row['pass']); if($row_hash == $recovery_hash) { $user_id = $row['id']; break; } } if($user_id === false) out(); $html->start('Смена пароля', array('home')); $html->form_start('user_lost_password.php?action=change_post', 'change_post', '', false); $html->form_add_variable('code', $recovery_hash); echo 'Пароль должен быть длиной от 4 до 16 символов.
'; break; case 3: echo 'Подтверждение пароля должено быть длиной от 4 до 16 символов.
'; break; case 4: echo 'Пароль и подтвержение должны совпадать.
'; break; } echo ''; $html->stop(); } break; case 'change_ok': $html->start('Смена пароля', array('home')); echo 'Пароль успешно изменен.
'; echo ''; $html->stop(); break; } ?>