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

Восстановление пароля

03.11.2013, 20:33. Показов 1664. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток всем! Моя про блема состоит в том, что не происходит изменение данных в БД. Запрос выполняется и генирирование нового пароля тоже проходит, а ошибку найти не могу.

Вот php код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if(isset($_POST["submit"])) {
        $email = ($_POST["email"]);
        $login = getLoginOnEmail($email);
        $new_password = substr(md5(time()), 0, 7);
        setPassword($login, md5($new_password));
        $to = $email;
        $from = "noreplay@online-gamer.net";
        $subject = "Восстановление пароля";
        $subject = '=utf-8?B'.base64_encode($subject);
        $headers = "From: $from\r\nReply-To: $from\r\n-Content-type: text/plain;charset=utf-8\r\n";
        $message = "Ваш новый пароль: $new_password";
        mail($to, $subject, $message, $headers);
        $success = true;
    }
а вот функциии
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function getLoginOnEmail($email) {
    global $mysqli;
    connectDB();
    $result_set = $mysqli->query("SELECT `nick` FROM `users` WHERE `email`='$email'");
    closeDB();
    return $result_set->fetch_assoc();
}
 
function setPassword($login, $new_password) {
    if (($login == "") || ($password == "")) return false;
    global $mysqli;
    connectDB();
    $success = $mysqli->query("UPDATE `users` SET `password`='$new_password' WHERE `nick`='$login'");
    closeDB();
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.11.2013, 20:33
Ответы с готовыми решениями:

Восстановление пароля
У меня на сайте есть таблица с пользователями (accounts) в ней такие данные, как id (id), логин (login), пароль (password), имя (name),...

Восстановление пароля
Доброго времени суток! Совсем недавно я писал здесь по поводу регистрации. Получив очень много замечаний, и узнав множество ошибок в моем...

Восстановление пароля по почте
Привет все! Помогите разобраться в коде. При попытке восстановить пароль через форму "восстановления пароля" ничего на почту не...

7
33 / 33 / 9
Регистрация: 26.07.2013
Сообщений: 148
04.11.2013, 19:48
torpedko, скорей всего проблема в этом. Вроде бы нельзя при закрытом соединении с базой использовать функцию fetch_assoc.
PHP
1
2
closeDB();
return $result_set->fetch_assoc();
Для этого проверь возвращается ли логин вообще.
PHP
1
2
$login = getLoginOnEmail($email);
var_dump($login);
0
0 / 0 / 1
Регистрация: 19.06.2013
Сообщений: 49
04.11.2013, 20:31  [ТС]
Цитата Сообщение от HWOARANG Посмотреть сообщение
torpedko, скорей всего проблема в этом. Вроде бы нельзя при закрытом соединении с базой использовать функцию fetch_assoc.
PHP
1
2
closeDB();
return $result_set->fetch_assoc();
Для этого проверь возвращается ли логин вообще.
PHP
1
2
$login = getLoginOnEmail($email);
var_dump($login);
логин возвращает. пишет array(1) { ["nick"]=> string(4) "nick" }
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
04.11.2013, 22:40
Зачем вообще постоянно подключаться и отключаться от бд?
Это просто лишняя нагрузка. Подключайтесь к бд 1 раз в начале скрипта, а по завершении работы скрипта, подключение само закроется.

Цитата Сообщение от torpedko Посмотреть сообщение
PHP
1
$login = getLoginOnEmail($email);
в $login записаться массив
а значит тут
Цитата Сообщение от torpedko Посмотреть сообщение
PHP
1
setPassword($login, md5($new_password));
вы передаёте массив первым параметром
а внутри функции используете как строку.

да и где логика? зачем делать так
PHP
1
2
3
4
5
конект
выбрать логин по емеилу
дисконект
конект
обновить пароль по логину
если можно сделать сразу
PHP
1
2
конект
обновить пароль по емеилу
0
0 / 0 / 1
Регистрация: 19.06.2013
Сообщений: 49
04.11.2013, 23:54  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Зачем вообще постоянно подключаться и отключаться от бд?
Это просто лишняя нагрузка. Подключайтесь к бд 1 раз в начале скрипта, а по завершении работы скрипта, подключение само закроется.


в $login записаться массив
а значит тут

вы передаёте массив первым параметром
а внутри функции используете как строку.

да и где логика? зачем делать так
PHP
1
2
3
4
5
конект
выбрать логин по емеилу
дисконект
конект
обновить пароль по логину
если можно сделать сразу
PHP
1
2
конект
обновить пароль по емеилу
спасибо, я учту Ваши замчания! но я попросил найти проблему и найти ее решение!
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
05.11.2013, 00:53
Цитата Сообщение от torpedko Посмотреть сообщение
но я попросил найти проблему
а это по вашему не проблема?
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
вы передаёте массив первым параметром
а внутри функции используете как строку.
0
 Аватар для 24web
12 / 12 / 1
Регистрация: 22.05.2013
Сообщений: 82
05.11.2013, 02:34
Цитата Сообщение от torpedko Посмотреть сообщение
спасибо, я учту Ваши замчания! но я попросил найти проблему и найти ее решение!
Проблема в вашей структуре! DrobyshevAlex все верно говорит!
0
0 / 0 / 1
Регистрация: 19.06.2013
Сообщений: 49
05.11.2013, 23:50  [ТС]
Цитата Сообщение от 24web Посмотреть сообщение
Проблема в вашей структуре! DrobyshevAlex все верно говорит!
Но, наверное, проблема вся в том, что все функции у меня в отдельно файле и поэтому так приходится делать!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.11.2013, 23:50
Помогаю со студенческими работами здесь

Восстановление пароля, не работает скрипт
Добрый День! Пишу скрипт, который задаст пользователю секретный вопрос, по указанному E-mail. Мой скрипт верно определяет, что такого...

Восстановление пароля и его отправка пользователю
Привет. Во время регистрации пользователя, его пароль, шифруется в md5 и записывается в базу данных. Но вот встал вопрос у меня. Если...

Как написать функцию Восстановление пароля через Model-View-Controller ?
Как написать функцию Восстановление пароля через Model-View-Controller

Восстановление пароля ученика
Добрый день. Стоит задача реализовать восстановление пароля ученика от электронного журнала. Есть файл .xml в котором находятся данные...

Не работает восстановление пароля по мылу
Написал скрипт для восстановления пароля по мылу и логину, но он либо не работает, либо работает, но не так как хотелось бы. Ошибок не...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта 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 позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru