Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 23.03.2013
Сообщений: 94

Система восстановления паролей

26.01.2014, 02:07. Показов 814. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Недавно написал заготовку для сайта с системой регистрации, и вспомнил что не хватает восстановления паролей...
Сделал набросок, все подогнал - однако ничего не работает!
Подскажите в чем проблема?

Вот адрес сайта: http://testregister.url.ph/

Вот код страницы(http://testregister.url.ph/lost/):

Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<? include "base.php"; ?> 
<html>
    <head>
        <meta charset="utf-8">
        <title>Восстановление пароля</title>
        <link rel="stylesheet" href="http://testregister.url.ph/style.css">
    </head>
 
    <body>
        <div id="registerr">
            <?
                if (!empty($_GET['lost_code']))
                {
                    if(!empty($_POST['pass']))  
                    {
                        $get_lost_code = $_GET['lost_code'];
 
                        $email = $_SESSION['email'];
 
                        $new_password = md5($_POST['pass']);
 
                        $check_lost_code = mysql_query("SELECT * FROM users WHERE lost_code = '".$get_lost_code."' AND EmailAddress = '".$email."'");
 
                        $get_email = $check_lost_code['EmailAddress'];
 
                        if ($email == $get_email) 
                        {
                            if (mysql_num_rows($check_lost_code) == 1) 
                            {
                                mysql_query("UPDATE users SET Password = '".$new_password."' WHERE EmailAddress = '".$email."'");
                                unset($_SESSION['email']);
                                echo "Ура ура ура!";
                                header('Refresh: 2; URL=http://testregister.url.ph/');
                            }
                            else
                            {
                                echo "Произошла ошибка, повторите попытку через 5 минут.";
                            }
                        }
                        else
                        {
                            echo "Произошла ошибка.";
                        }
                    }  
                    else  
                    {  
                    ?>  
                       <h1 style="margin-left: 30px;">Восстановление пароля.</h1>  
                        <form method="post" action="/lost/<? $get_lost_code ?>" name="registerform" id="registerform">  
                            <fieldset>  
                                <input style="font-size: 15px; width: 322px;" placeholder="Введите новый пароль" type="text" name="pass" id="pass"><br>  
                                <input style="font-size: 13px;" type="submit" name="find" id="find" value="Восстановить"> 
                            </fieldset>  
                        </form>   
                    <?  
                    } 
                }
                else
                {
                    if(!empty($_POST['email']))  
                    {  
                        $email = $_POST['email'];  
 
                        $find_code = md5($email.time()); 
 
                        $find_email = mysql_query("SELECT * FROM users WHERE EmailAddress = '".$email."'");  
 
                        if(mysql_num_rows($find_email) == 1)  
                        {  
                            //mysql_query("UPDATE users SET lost_code = '".$find_code."' AND EmailAddress = '".$email."'");
 
                            mysql_query("INSERT INTO users (lost_code) VALUES('".$find_code."') WHERE EmailAddress = '".$email."'");
 
                            $bd_arr = mysql_query("SELECT * FROM users WHERE EmailAddress = '".$email."'");
 
                            $nick = $bd_arr['Username']; 
 
                            $to = $email;
                            $subject = "Восстановление пароля.";
                            $body='
                                Привет,'.$nick.'!<br>
                                Для того чтобы восстановить пароль, перейди по ссылке: 
                                '.$base_url.'lost/'.$find_code.'
                                Удачи!
                            ';
 
                            mail($to, $subject, iconv("utf-8", "windows-1251", $body)); 
 
                            $_SESSION['email'] = $_POST['email'];
 
                            echo "все роботает";
                        }  
                        else  
                        {  
                            echo "Ошибка! На эту почту не было регистатий";
                        }  
                    }  
                    else  
                    {  
                    ?>  
                       <h1 style="margin-left: 30px;">Восстановление пароля</h1>  
                        <form method="post" action="/lost" name="registerform" id="registerform">  
                            <fieldset>  
                                <input style="font-size: 15px; width: 322px;" placeholder="Введите email" type="text" name="email" id="username"><br>
                                <input style="font-size: 13px;" type="submit" name="find" id="register" value="Восстановить"> 
                            </fieldset>  
                        </form>   
                    <?  
                    } 
                } 
            ?>
        </div>
    </body>
</html>

Суть такова: пользователь забыл пароль > вводит свой email > ему приходит письмо с ссылкой на страницу с восстановлятором > пишет новый пароль > готово.

Заранее огромное спасибо! Ведь если вопрос не разрешится, я не смогу спать!

P.S. я использую правило .htaccess - rewriterule для превращения http://testregister.url.ph/lost.php/ в http://testregister.url.ph/lost/

Добавлено через 10 часов 9 минут
ПОМОГИТЕ!!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.01.2014, 02:07
Ответы с готовыми решениями:

Скрипт восстановления паролей
всем привет. можете помочь как можно сделать такой скрипт восстановление паролей вот пример : http://battle.net.kg/recover введите...

Система логинов и паролей
Подскажите скрипт логинов и паролей, чтобы после каждой сессии на email приходил новый пароль. Можно предложить другую систему чтобы не...

Система зависает после восстановления
Здравствуйте! Сделал на висте восстановление системы, теперь вся система виснет даже когда не чё не делаю, постоянно горит жёлтая лампочка...

2
 Аватар для lookmy
60 / 55 / 20
Регистрация: 01.04.2013
Сообщений: 551
26.01.2014, 11:52
без разницы какое у тебя правило ! В бд делай так , создай раздел хеш - и сохраняй md5 - длина ключа 32 варчар вообщем.
вот когда он запрашивает пасс на новый , делай выборку на проверу есть такой почтавик , есть , делаешь хеш сумму запись в бд. потом высылай на указанный адрес ссылку . А тут уже просто проверка суммы и всё .
А правило или нет ... тебе решать как работать .
сайт/sd65f46ds54f65ds11/
или
сайт/email.php?v=sd65f46ds54f65ds11
0
1 / 1 / 0
Регистрация: 23.03.2013
Сообщений: 94
26.01.2014, 15:53  [ТС]
Так то все ясно, я осознаю что делаю - но не понимаю в чем ошибка.

Добавлено через 3 часа 59 минут
Очень нужна помощь, ребята!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.01.2014, 15:53
Помогаю со студенческими работами здесь

Система восстановления и вывод информации на экран Proteus
Есть 3 кнопки, пронумерованные от 1 до 3 дальше реализация , желтые и красные лампочки желтые горят , все норм есть связь...

Система загружается через раз (требует восстановления)
w-s 7 тог грузится нормально, то не может загрузится, выходит восстановление системы. раньше были проблемы с материнской платой, это может...

Генераторы мастер паролей на биосы (сброс неизвестных паролей биоса)
Народ, кто каким пользуется например вот https://bios-pw.org

Создать генератор паролей в котором можно указать длину пароля и количество паролей
Помогите пожалуйста! Задание: Нужно создать генератор паролей в котором можно указать длину пароля и количество паролей то есть длина...

При попытке восстановления пишет "Диск, на котором установлена система Windows, заблокирован"
Ноутбук Asus N750JV. Система Windows 8 x64. Cделал перенос ОС на SSD. Но появились проблемы (например - при нажатии кнопки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru