![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 30.06.2019 Ostrzeżenie: (0%) ![]() ![]() |
Witam, ucze sie obecnie php i mysql. Probuje obecnie stworzyc strone z rejestracja i logowaniem. Ogolnie rejestracja dziala jak najbardziej ale mam problem z logowaniem. Mimo wpisywania dobrych danych i tak wyskakuje ze wpisalem zle haslo. Czy popelnilem jakis blad tutaj?
Ten post edytował wojtek111 30.06.2019, 17:13:42 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Powinno być OK. Jakie typy masz w bazie danych dla tych dwóch kolumn? Powinny być ustawione na typy tekstowe (string), bo używasz znaków apostrof, cudzysłów dla wartości.
Sprawdź, co siedzi w zmiennej $result, napisz tak i wklej tutaj co ta instrukcja zwróciła. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 30.06.2019 Ostrzeżenie: (0%) ![]() ![]() |
Powinno być OK. Jakie typy masz w bazie danych dla tych dwóch kolumn? Powinny być ustawione na typy tekstowe (string), bo używasz znaków apostrof, cudzysłów dla wartości. Sprawdź, co siedzi w zmiennej $result, napisz tak i wklej tutaj co ta instrukcja zwróciła. Wyskakuje cos takiego: object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(5) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) } typy to varchar(50) Ten post edytował wojtek111 30.06.2019, 18:42:39 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Musisz podawać nieprawidłowe dane. Może masz dwie tabele, czy coś i nie odwołujesz się do tej co trzeba? A może podajesz za długi login i/lub hasło ponad 50 znaków, które zadeklarowałeś jako typ varchar(50)?
Cytat object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(5) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) } Błędny login i/lub hasło, ponieważ num_rows zwróciło zero (0). Napisz tak:
Za x i y podstaw swoje dane, żeby móc się zalogować. Popraw warunek if'a na;
Ten post edytował Neutral 30.06.2019, 19:23:31 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 30.06.2019 Ostrzeżenie: (0%) ![]() ![]() |
Musisz podawać nieprawidłowe dane. Może masz dwie tabele, czy coś i nie odwołujesz się do tej co trzeba? A może podajesz za długi login i/lub hasło ponad 50 znaków, które zadeklarowałeś jako typ varchar(50)? Błędny login i/lub hasło, ponieważ num_rows zwróciło zero (0). Napisz tak:
Za x i y podstaw swoje dane, żeby móc się zalogować. Popraw warunek if'a na;
Wpisuje poprawne dane. Uzylem loginu test i hasla test. Sprawdzalem juz chyba milion razy i nic nie dziala, Jesli przypisze $username="test" i $password="test" to tez nie dziala. Mam trzy tabele w bazie danych ale uzywam poprawnej o nazwie "users" var_dump zwraca tak: string(4) "test" string(4) "test" Ten post edytował wojtek111 30.06.2019, 19:34:02 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Utwórz nową tabelę, np. taką:
Kod +----+-----------+ | id | nme | +----+-----------+ | 1 | yellow | | 2 | green | | 3 | orange | | 4 | white | | 5 | darkgreen | | 6 | orange | | 7 | grey | | 8 | orange | | 9 | orange | | 10 | orange | | 11 | orange | | 12 | orange | | 13 | orange | | 14 | orange | | 15 | orange | | 16 | orange | | 17 | grey | | 18 | grey | | 19 | white | | 20 | white | | 21 | white | | 22 | white | | 23 | grey | +----+-----------+
I wpisz w user np. 19 i w password white. Ten post edytował Neutral 30.06.2019, 20:04:19 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzałeś czy w bazie te dane na pewno są zapisane?
Dodatkowo kilka uwag. 1. new mysqli("localhost","nazwa","haslo","bazadanych"); Tworzysz nowy obiekt. Dlaczego potem przeskakujesz na styl proceduralny? 2. Wyjątki. Poczytaj jak łapać zamiast ifować błędy. 3. Binduj parametry zamiast przekazywać bezpośrednio - otwierasz drogę na ataki sql injection. 4. Hasło przechowuj jako password_hash i sprawdzaj password_verify. -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 30.06.2019 Ostrzeżenie: (0%) ![]() ![]() |
Utwórz nową tabelę, np. taką: Kod +----+-----------+ | id | nme | +----+-----------+ | 1 | yellow | | 2 | green | | 3 | orange | | 4 | white | | 5 | darkgreen | | 6 | orange | | 7 | grey | | 8 | orange | | 9 | orange | | 10 | orange | | 11 | orange | | 12 | orange | | 13 | orange | | 14 | orange | | 15 | orange | | 16 | orange | | 17 | grey | | 18 | grey | | 19 | white | | 20 | white | | 21 | white | | 22 | white | | 23 | grey | +----+-----------+
I wpisz w user np. 19 i w password white. to samo sie dzieje ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Napisz może bez żadnych warunków, żeby pokazała Ci się cała tabela wyciągnięta z bazy, czyli tak jak ja poniżej.
Możliwe, że jakieś niewidzialne znaki się doklejają lub jakieś kodowanie przeszkadza. Ewentualnie ustawienia w MySQL są skopane. Ten post edytował Neutral 30.06.2019, 20:33:31 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.07.2025 - 15:40 |