agata233
24.04.2004, 17:59:12
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
24.04.2004, 18:02:57
Czegoś nie rozumiem
Jak mozna pobrac "nazwa_uz" gdzie "nazwa_uz" to $n??
agata233
24.04.2004, 18:26:49
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
24.04.2004, 18:42:09
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
24.04.2004, 18:45:08
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
24.04.2004, 18:48:35
A daj więcej kodu np funkcji password
agata233
24.04.2004, 18:52:38
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
24.04.2004, 19:54:33
[sql:1:beb59daf63]SELECT password( 'test' )[/sql:1:beb59daf63]
zobacz co zwróci ci to zapytanie powinno być "*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29"
agata233
24.04.2004, 19:57:55
Mnie to zapytanie zwrocilo:
378b243e220ca493
Dziwne. czemu dostalam inny wynik? To chyba gdzies tu tkwi problem?
HaRy
24.04.2004, 20:02:54
Cytat
Mnie to zapytanie zwrocilo:
378b243e220ca493
Dziwne. czemu dostalam inny wynik? To chyba gdzies tu tkwi problem?
nie ma problemu
zwrocilo Ci jak najbardziej prawidlowy wynik ...
ciekawe skad masz
@Bora taki wynik ...
agata233
24.04.2004, 20:12:49
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
24.04.2004, 20:30:58
sprawdz
[sql:1:8103b455c9]select LENGTH(PASSWORD('dowolne_haslo'));[/sql:1:8103b455c9]
agata233
24.04.2004, 20:37:05
Dzieki
Bora
24.04.2004, 22:16:48
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
25.04.2004, 08:46:08
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
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.