Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja password nie dziala
Forum PHP.pl > Forum > PHP
agata233
Mam taki problem:
Zapisuje uzytkownika do bazy danych przy pomocy takiego zapytania:
insert into uzytkownicy values(NULL, PASSWORD('".$haslo."'), '$uzyt', '$nazw_u', '$imie_u', '$mail_u'),
ale gdy potem przy logowaniu probuje sprawdzic nazwe uzytkownika i haslo w ten sposob:
select userid, nazwa_uz from uzytkownicy where nazwa_uz='$n' and haslo = password('$h')
to okazuje sie ze zaden z rekordow nie spelnia tego zapytania.
Czy robie cos zle? Co moze powodowac ten problem?
baraqda
Czegoś nie rozumiem
Jak mozna pobrac "nazwa_uz" gdzie "nazwa_uz" to $n??
agata233
Ok, wiec jest tak:(A zmienna $n jest wczesniej pobierana z formularza)
select userid from uzytkownicy where nazwa_uz='$n' and haslo = password('$h')
regis87
1. Register_globals on? Jezeli nie, to moze po prostu nie przechodzi z formularza i musisz zamiast $n dac $_POST['n'] itd.
2. sprawdz mysql_error() co zwraca...
agata233
to musi byc jakis problem u mnie z ta funkcja password i sprawdzaniem hasla, bo zanim ja dodalam, to wszystko dzialalo. Zmienne z formularza sa przekazywane poprawnie.
baraqda
A daj więcej kodu np funkcji password
agata233
Przeciez funkcja password to funkcja my-sql-owa. Jedyne 2 miejsca, gdzie jej uzywam podalam. Blad musi byc gdzie stam, bo wczesniej wszystko dzialalo idealnie.
Bora
[sql:1:beb59daf63]SELECT password( 'test' )[/sql:1:beb59daf63]
zobacz co zwróci ci to zapytanie powinno być "*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29"
agata233
Mnie to zapytanie zwrocilo:
378b243e220ca493
Dziwne. czemu dostalam inny wynik? To chyba gdzies tu tkwi problem?
HaRy
Cytat
Mnie to zapytanie zwrocilo:
378b243e220ca493
Dziwne. czemu dostalam inny wynik? To chyba gdzies tu tkwi problem?


nie ma problemu smile.gif
zwrocilo Ci jak najbardziej prawidlowy wynik ...

ciekawe skad masz @Bora taki wynik ...
agata233
Zaczelo dzialac, jak zmienilam dlugosc pola haslo w tabeli. Mam w zwiazku z tym pytanie. Czy jest jakas minimalna dlugosc, jaka musi miec pole haslo, gdy stosujemy funkcje password. Czy dlugosc wyniku otrzymanego po uzycie funkcji password jest zawsze mniejsza badz rowna dlugosci pola haslo?
HaRy
sprawdz smile.gif

[sql:1:8103b455c9]select LENGTH(PASSWORD('dowolne_haslo'));[/sql:1:8103b455c9]
agata233
Dzieki laugh.gif
Bora
Kod
zapytanie SQL : [Edycja] [Wyjaśnienie SQL] [Utwórz kod php]

SELECT password( 'test' )

Kod
password( 'test' )

*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29

tak u mnie wygląda w phpmyadminie. Hmm ciekawe dlaczego inny wynik.
pozatym u mnie hasło ma długość 41.
HaRy
zalezy o jakiej wersji MySQL'a mowimy ...

do 4.1 haslo bylo hashowane 16 bitowo ...
w 4.1 jest juz 41 bitowo.

zreszta ... wystarczy poszukac tongue.gif mysql.com
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.