kmicic25
30.09.2009, 09:00:52
Witam
Pracuje nad systemem logowania do strony www.
No i wyszedl problem.
Próbuje wysłac zapytanie z php o nr id uzytkownika.
Zaczęło się ze zapytanie $sql = "select customerid from customer where username='Admin' AND password='1111'"; nie działało.
Wiec sprawdzam
$sql = "select customerid from customer where username='Admin'"; ----- działa
$sql = "select customerid from customer where password='1111'"; ----- nie działa:(
Hasła do bazy i tworzenie połaczenie chyba ok bo jak pytam o username to odpowiada.
Z poziomu phpMyAdmin działaja wszystkie trzy.
Proszę o sugestie.
tomsi
30.09.2009, 09:15:32
Zamień ' na \" i zobacz czy działa.
vokiel
30.09.2009, 09:17:34
Przede wszystkim hasło w bazie przechowuj zahashowane np sha1
INSERT INTO `customer` (`customerid`,`username`,`password`) VALUES (NULL,'Vokiel',sha1('ultratajnehaslo');
Sprawdzanie logowania:
$sql = "SELECT `customerid` FROM `customer` WHERE `username`='Vokiel' AND password=sha1('ultratajnehaslo');";
kmicic25
30.09.2009, 09:48:59
tez nie działa:(
wyrzucilem zapytanie na echo i wyglada ok.
select customerid from customer where password="1111"
po skopiowaniu do phpmyadmin działa a z php nie chce:(
Pozdrawiam
cojack
30.09.2009, 10:02:48
Ty chyba kolego czegoś nie rozumiesz, nie przechowywujemy haseł w postaci plain/text tylko w postaci sumy jakiegoś algorytmu szyfrującego, czyli jak ktoś wpisze login i hasło w formularzu żeby się zalogować, sprawdzasz czy w bazie istnieje taki login i hasło za pomocą SELECT, prosty przykład masz podany na górze. Jeżeli jest taki rekord to święto lasu, nie to out.
kmicic25
30.09.2009, 10:17:19
Rozumiem to
Wpisałem tak jak zaleciłeś.
jak pisze
$sql = "SELECT customerid FROM customer WHERE username='Admin';"; ---- działa
a jak
$sql = "SELECT customerid FROM customer WHERE username='Vokiel';"; ----nie działa
Juz sam nie wiem co robie nie tak.
251 Admin
250 Vokiel
Moze to coś z ustawieniami kodowania znaków
Oba zapytania działają pod phpmyadmin'em
vokiel
30.09.2009, 10:18:10
Jeśli działa w PMA a nie w PHP to znaczy, że coś pomieszałeś z cudzysłowami, apostrofami, źle łączysz się z bazą etc.
Jeśli piszesz, że nie działa to podaj dokładnie co nie działa (czyt. zwracany błąd)
kmicic25
30.09.2009, 13:21:34
Witam
Sprawa się wyjasniła
Firma hostingowa coś namieszała i po prostu widziałem dwie bazy.
Inna gdy łączylem sie przez phpMyAdmin a inna przez php.
Pozdrawiam
Dzięki za pomoc.
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.