pgSQL - aktualizacja has

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2344
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Widziałem :)
Takie zapytanie zwróciło 0.
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

No jak? Wynik aktualizacji 0 to nie błąd, tylko znaczy, że nie znalazł pasującego rekordu.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2344
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

A, nie, przepraszam, inne poprawiałem ten zwraca 1. :)
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

No to teraz pokaz spróbuj się zalogować z nowym hasłem przez aplikację. Sprawdzimy, czy przyjmuje takie hasła, jeśli tak, to jesteśmy w domu i jeszcze dzisiaj masz skrypt gotowy.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2344
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Niestety nie mogę się zalogować.
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

To kiepsko. Trzeba zatem wrócić do porady lessmiana2 i sprawdzić w jaki sposób robi to mysql (pewnie z saltem jak znam życie). Wklej kod tej funkcji myslqa, zobaczę co tam siedzi.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2344
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Oj, żebym to ja wiedział gdzie to siedzi w tych plikach...
http://trac.roundcube.net/browser/trunk ... s/password
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

A w tej bazie Mysql nie mozesz podpatrzeć procedury?
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2344
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Spróbuję na innym popatrzeć, moment, dłuższy moment...

Dodane:
To by było chyba to:

Kod: Zaznacz cały

CREATE FUNCTION update_password (oldpass text, cryptpass text, user text) RETURNS text
            MODIFIES SQL DATA
        BEGIN
            DECLARE currentsalt varchar(20);
            DECLARE error text;
            SET error = 'incorrect current password';
            SELECT substring_index(substr(user.password,4),_latin1'$',1) INTO currentsalt FROM users WHERE username=user;
            SELECT '' INTO error FROM users WHERE username=user AND password=ENCRYPT(oldpass,currentsalt);
            UPDATE users SET password=cryptpass WHERE username=user AND password=ENCRYPT(oldpass,currentsalt);
            RETURN error;
        END
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

Kod: Zaznacz cały

CREATE FUNCTION update_password (oldpass text, cryptpass text, user text) RETURNS text AS '
        BEGIN
            DECLARE currentsalt varchar(20);
            DECLARE error text;
            SET error = 'incorrect current password';
            SELECT substring_index(substr(user.password,4),_latin1'$',1) INTO currentsalt FROM users WHERE username=user;
            SELECT '' INTO error FROM users WHERE username=user AND password=ENCRYPT(oldpass,currentsalt);
            UPDATE users SET password=cryptpass WHERE username=user AND password=ENCRYPT(oldpass,currentsalt);
            RETURN error;
        END; '  language 'SQL';
ODPOWIEDZ