System: Windows 10 Pro ver. 16299.431
Oprogramowanie: Xampp v.3.2.2
JTHTML 8.6
Co chcę by działało: By skrypt poprawnie wykonywał swoją funkcję, by potrafił logować użytkownika na podstawie jego bycia w bazie danych MySQL. Obecnie uzyskuje błąd: "Wpisano z�łedane.
Notice: Undefined index: zalogowany in C:\xampp\htdocs\php\logowanie.php on line 59
Notice: Undefined index: zalogowany in C:\xampp\htdocs\php\logowanie.php on line 67
Błąd logowania"
Według mnie jest to spowodowane tym, że poczynając od linijki 45 funkcja nie wykonuje się prawidłowo, być może nie potrafi wysłać do bazy tych danych (login i hasło) i wyszukać użytkownika, gdyż zwraca wartość FALSE przez co ta zmienna nie występują dalej w kodzie, bo powinna się stworzyć gdy użytkownik zostanie znaleziony.
Dodam iż zmienne do kodu PHP z formularza na wcześniejszej stronie są wysyłane, gdyż przeglądarka potrafi je wypisać w oknie jeśli tego zażądamy.
Cały kod logowania był wzorowany na tej stronie, oczywiście zmodyfikowany aby dzisiaj działał pod mysqli, a nie mysql.
Załączam również pliki nad którymi pracuję.
Względy bezpieczeństwa tego rozwiązania pomijam, to tylko strona do uczenia się programowania dla siebie. A zaczynamy od prostszych rzeczy
Liczę na waszą pomoc i wytłumaczenie w czym leży problem! Z góry dzięki za wszelką inicjatywę! index.css (1,8 KB) index.txt (2,6 KB) logowanie.txt (1,6 KB)
*Plik index.txt powinien mieć rozszerzenie html, a plik logowanie.txt rozszerzenie php.
Po błędach wykonuje się poprawnie, lecz nie znajduje w bazie użytkownika i wyświetla się informacja, że podano błędne dane.
Ogólnie to rozbiję trochę Twoje błędy, aby były czytelniejsze.
1. Wpisano z�łedane.
2. Notice: Undefined index: zalogowany in C:\xampp\htdocs\php\logowanie.php on line 59
3. Notice: Undefined index: zalogowany in C:\xampp\htdocs\php\logowanie.php on line 67
4. Błąd logowania
1 i 4 to są błędy wypisywane przez Ciebie - komunikaty o tym, że nie znalazłeś użytkownika.
2 i 3 są to błędy składniowe php’a, spowodowane jak dobrze myślałeś niepowodzeniem zapytania do bazy danych, ale nie tym, że ono nie działa, lecz tym, że nie obsłużyłeś wszystkich wyjątków. Obsługujesz tylko przypadek gdy użytkownik jest w bazie, a jak nie nie tworzysz w ogóle $_SESSION['zalogowany'] więc dalej próby odwołania się do nie istniejącego indeksu powodują błędy.
Możesz albo rozbudować tego else:
Co do błędu 1 i 4, jestem świadom, że to moje błędy, po prostu wypisałem je żeby było wiadomo co funkcja zrobiła, jakbym tego nie zrobił ktoś mógłby pomyśleć, że funkcja nie wykonała ani if ani else. Dla zwykłej jasności.
Mam również świadomość, że na ten moment obsługuję tylko istniejącego użytkownika, aktualnie zależało mi tylko na tym przypadku. Aktualnie w stronie nie mam obsługi nieznalezionego użytkownika, po prostu jeśli nie znajdzie nie mam jeszcze zrobionego okienka informacyjnego, że niepoprawne hasło lub login.
Zapomniałem w tym wszystkim dołączyć pliku bazy danych, ale zaraz zobaczę jak to wygląda i będę się dalej odzywać w razie gdybym nie potrafił czegoś rozwiązać.