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

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

03.11.2013, 20:33. Показов 1637. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru