Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите со сменой пароля

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Kreks
Отправлено: 11 Сентября, 2011 - 15:48:33
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Авг. 2011  
Откуда: Ульяновск


Помог: 0 раз(а)




Приветствую, делаю скрипт смены пароля, не могу сделать правильный запрос на выборку из базы старого и сравнения его с введенным старым паролем.

PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST['password'])) {
  3. $password = $_POST['password'];
  4. $password = stripslashes($password);
  5. $password = htmlspecialchars($password);
  6. $password = trim($password);
  7.  
  8. [b]$resu = mysql_query("SELECT * FROM users SET password='$password' WHERE login='$login'",$db);[/b]
  9.  
  10. $oldpass = mysql_fetch_array($resu);
  11. $resuext = mysql_query($resu) or die(mysql_error());
  12.  
  13. if ($password != $oldpass){
  14. die ("Введенный вами старый пароль является не правильным если вы забыли пароль,то воспользуйтесь востановлением пароля!");
  15. }
  16.  

(Отредактировано автором: 11 Сентября, 2011 - 16:20:07)

 
 Top
biperch
Отправлено: 11 Сентября, 2011 - 16:41:11
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




ну для начала скажу вот что пароли никто не хранит в открытом виде, они как минимум захешированы MD5. По этом тебе нужно принятый пароль хешануть и его сравнивать с тем который в базе
 
 Top
Kreks
Отправлено: 11 Сентября, 2011 - 17:55:46
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Авг. 2011  
Откуда: Ульяновск


Помог: 0 раз(а)




biperch пишет:
ну для начала скажу вот что пароли никто не хранит в открытом виде, они как минимум захешированы MD5. По этом тебе нужно принятый пароль хешануть и его сравнивать с тем который в базе

Естественно я их хеширую в коде выше.
 
 Top
LIME
Отправлено: 11 Сентября, 2011 - 18:02:35
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




посмотрите на 8 и 11 строки
получается
PHP:
скопировать код в буфер обмена
  1. $resuext = mysql_query(mysql_query("SELECT * FROM users SET password='$password' WHERE login='$login'",$db)) or die(mysql_error());
ну не п...ц ли?

(Отредактировано автором: 11 Сентября, 2011 - 18:03:35)

 
 Top
White
Отправлено: 11 Сентября, 2011 - 18:25:32
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




LIME Радость
Kreks вообще это делается так
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE `users` SET `password`="new_pass" WHERE `login`="login" AND `password`="old_pass"

если логин берется из сессии, то mysql_affected_rows() будет равно нулю только в случае неправильного пароля.


-----
if(time()>1356048000) die();
 
 Top
Kreks
Отправлено: 11 Сентября, 2011 - 18:41:49
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Авг. 2011  
Откуда: Ульяновск


Помог: 0 раз(а)




White пишет:
LIME Радость
Kreks вообще это делается так
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE `users` SET `password`="new_pass" WHERE `login`="login" AND `password`="old_pass"

если логин берется из сессии, то mysql_affected_rows() будет равно нулю только в случае неправильного пароля.

Ага, это мы уже меняем пароль и обновляем его в базе, а мне надо только еще человека выбрать с его паролем (нынешнем) и сверить выбранный из базы пароль с тем,что пользователь вводит в поле старый пароль.
LIME исправил у себя.

(Отредактировано автором: 11 Сентября, 2011 - 18:42:51)

 
 Top
LIME
Отправлено: 11 Сентября, 2011 - 18:47:03
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




это всетаки п...ц
внимательнее запрос смотреть надо
там УЖЕ все проверено после AND
Kreks пишет:
LIME исправил у себя.

нихрена не исправил
 
 Top
Kreks
Отправлено: 11 Сентября, 2011 - 18:49:27
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Авг. 2011  
Откуда: Ульяновск


Помог: 0 раз(а)




LIME пишет:
нихрена не исправил

Я же сказал исправил у себя, у себя значит у себя в коде,и да, всем спасибо,но я уже сам сделал проверку на правильность старого пароля !
 
 Top
LIME
Отправлено: 11 Сентября, 2011 - 18:49:35
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




может рассказать запрос человеческим языком если непонятно?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB