![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 7.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hej. Mam proste pytanie, jak wyświetlić dane z tabeli o użytkowniku, który właśnie się zalogował, w stylu:
login: xxx --- password: xxx --- data rejestracji ---- Chodzi mi o sam kod SQL
Mam taki kod logowania. Działa z wyjątkiem tego, że jak źle wpiszę hasło to nie widzę 'return' a... a właśnie nic nie widzę, też czemu? To też jest zagwozdka? I jak z tego wyciągnąć dane o użytkowniku, który właśnie jest zalogowany? Ten post edytował andrzejlechniak 12.12.2010, 23:19:55 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Nie widzisz bo return zwraca wartość, a nie drukuje. Konstrukcje drukujące to np. print albo echo.
Dane o użytkowniku można wyciągnąć tak, że w momencie poprawnej autoryzacji do sesji zapisujesz potrzebne dane (login, ostatnie logowanie itp.) a potem już normalnie wyświetlasz zawartość poszczególnych zmiennych sesyjnych ala $_SESSION['last_login'] itd. -------------------- Najczęstsze błędy | Jak poprawnie zadać pytanie? | Serwer PHP - od czego zacząć?
SQL Injection | Hashowanie haseł | Jak działają sesje, przykłady ___ The world is yours ... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 7.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
co do tego returna, to dziwna sprawa, jak zamieniłem na echo to wyświetla mi się na stronie logowania (znaczy normalnie jak jest formularz logowania), że jest błąd, a nie jak nic nie wpiszę. Wtedy cały czas widzę pustą stronę.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
co do tego returna, to dziwna sprawa, jak zamieniłem na echo to wyświetla mi się na stronie logowania (znaczy normalnie jak jest formularz logowania), że jest błąd, a nie jak nic nie wpiszę. Wtedy cały czas widzę pustą stronę. Hm ... Pierwszy warunek sprawdzanie sesji, pierwsza klamerka obejmuje wszystko, jak rozumiem *warunek zostanie spełniony gdy nie jesteśmy zalogowani. Dalej kolejny warunek sprawdza czy dane z posta są puste, jeżeli są wyświetla formularz - no ok. Schodzimy niżej sprawdzamy czy użytkownik istnieje w bazie, jeżeli nie istnieje drukuj że jest błędny login/hasło - tutaj pojawia się print. I nadal nie działa jak chciałeś tak? Może wklej większy fragment kodu, ale przed tym zastosuj się do poniższych wskazówek. * Cały czas zakładam, że kod który wkleiłeś nie jest funkcją. W przypadku funkcji return jak najbardziej się sprawdzi, poczytaj ;-) * Piszesz, że masz pustą stronę, czy aby na pewno nie masz żadnych błędów - upewnij się czy masz włączone raportowanie błędów - http://forum.php.pl/index.php?showtopic=44...t=0&start=0 (pkt 9) ___ * (linia 1) Swoją drogą zmienne potrafią przybierać wartości true/false, więc sprawdzając czy ktoś jest zalogowany można użyć if (isset($_SESSION['logged'])) zamiast bawić się w takie kombinacje -------------------- Najczęstsze błędy | Jak poprawnie zadać pytanie? | Serwer PHP - od czego zacząć?
SQL Injection | Hashowanie haseł | Jak działają sesje, przykłady ___ The world is yours ... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 7.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
OK, zastosowałem error_all. Piszę zatem cały kod samego logowania. Wyskakuje mi jeden błąd: Notice: Undefined index: wyloguj in, ale szczerze to wątpie aby to blokowało samego returna. Może się mylę.
Co do sprawdzania samego użytkownika, to napisałem coś takiego:
i też mi pisze, że mam niezdefiniowany index 'password'. A przecież go deklaruję w samej funkcji logowania. Poza tym nie wyświetla mi żadnych wyników. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Mogę Ci poradzić:
* Sprawdzaj jakie wartości przyjmują kolejne zmienne korzystając z konstrukcji takich jak var_export, var_dump i pochodne (patrz Najczęstsze błędy). * Blokuj wykonywanie skryptu - die w celu wyświetlania kodu do określonego miejsca - umożliwi Ci to diagostykę (metoda prób i błędów) * return działa w obrębie funkcji (zwraca wartość nie drukuje) * Błędy NOTICE, które Ci się wyświetlają możesz zlikwidować podążając za wskazówkami z tego tematu * Sprawdzaj co zawierają zmienne $sql, czy te zapytania są na pewno poprawne To tyle bez wgryzania się w kod, który muszę przyznać jest trochę chaotyczny. Spróbuj podążyć za moimi wskazówkami. Jeżeli nadal będziesz miał problemy sprecyzuj proszę dokładnie swój problem, przede wszystkim podając co chcesz osiągnąć. -------------------- Najczęstsze błędy | Jak poprawnie zadać pytanie? | Serwer PHP - od czego zacząć?
SQL Injection | Hashowanie haseł | Jak działają sesje, przykłady ___ The world is yours ... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 17:17 |