Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: rzuc okiem co jest zle
Forum PHP.pl > Forum > Bazy danych > MySQL
devint
hej

upgreadowalem MySQL i niedowierzam, nie chodzi mi prosta autentykacja ktora dzialala bez zarzutu wczesniej

walczac z tym problem sprowadzilem do tego ze ze skryptu php wprowadzam najprostsze dane do mysql
a pozniej chce je zweryfikowac tez z poziomu skryptu.

1) wpis do bazy na sztywno zeby bylo widac gdzie blad:
  1. <?php
  2. $querry = mysql_query("insert into admin
  3.  
  4. values('admin',password('admin'))");
  5. ?>

Dodaje ladnie w mysql monitoor widze dodane komorki i zaszyfrowane haslo dla admina

komorki to jak widac, login i password, obie char(16) not null - nic specjalnego
  1. CREATE TABLE admin (
  2. login char(16) NOT NULL PRIMARY KEY,
  3. password char(16) NOT NULL
  4. );


2)proba pobrania danych i wyswietlenia:
  1. SELECT *
  2. FROM adm<span style='color:green'>in WHERE login='admin' AND password = password('admin');

from admin - SQL code cos zle wyswietla, tam nie ma bledu ponizej jeszcze raz dla pewnosci to samo wklejam:
Kod
select * from admin
                         where login='admin'
                         and password = password('admin');

Czy to z poziomu php do mysql_fetch_array - tylko tak na chwilke zeby wyswietlilo
Czy tez z poziomu MySQL monitor i PHPMyAdmin nie daje rezultatu.

BAZA MySQL 4.1.10a-nt (dlatego taka bo taka mam na hostingu).
podejrzewam ze problem moze lezec w jakichs ustawieniach konfiguracyjnych bazy - szyfrowanie hasel - ale do tej pory nie mialem z tym przyjemnosci.

dziki za wszelkie naprowadzanie
nospor
http://dev.mysql.com/doc/refman/4.1/en/password-hashing.html

http://dev.mysql.com/doc/refman/4.1/en/app...ssword-use.html

passowrd zwraca wiecej niz 16 znakow.

uzywaj md5 php ktore zawsze zwraca 32 znaki
devint
zmienilem na md5
ale efekt jest nadal tragiczny

  1. INSERT
  2. INTO adm<span style='color:green'>in VALUES('trzy' , md5('trzy'));
  3.  
  4. SELECT *
  5. FROM adm<span style='color:green'>in WHERE login='trzy' AND user_pass=md5('trzy');


to samo jeszcze raz:
Kod
INSERT into admin VALUES('trzy' , md5('trzy'));

SELECT * FROM admin WHERE login='trzy' and user_pass=md5('trzy');


zwraca
  1. Empty SET


wywolywane w monitorz, ze skryptu i phpmyadmina
nawet zmienilem kolumne w tabeli na user_pass zeby sie przypadkiem nie gryzlo z password

oczywiscie pierwsza linijka SQL dziala i jak daje select * from admin to widze dodane wpisy! questionmark.gif?

help
nospor
1)a zmienieles rozmiar pola password na 32 znaki?
2) i uzywaj md5 z php, ale to to juz moze nie gra takiej roli
devint
uffff

no ladnie sie zagrzalem...


dzieki dziala

po zmianie na char(32)...
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.