![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 21.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam, dopiero uczę się PHP. Robię internetowy dziennik lekcyjny. Baza jest i działa, samo logowanie także. Ale gdy dodałam podział na użytkowaników (1-uczeń, 2-rodzic, 3-nauczyciel; odpowiada temu w bazie kolumna ident_function w tabeli user), to zonk.
Dokładnie - program wykonuje ostatnią instrukcje w switch'u i wyświetla się komunikat "skontaktuj się z administratorem". Logowanie polega na podaniu maila i hasła. Prosze o pomoc, siedze nad tym 3 dzień i nic. Przejrzałam inne podobne tematy, ale nie wyjaśniło mi to sprawy. <?php session_start(); $db_link=mysql_connect("localhost","uzytkownik","haslo") or die ("Brak połączenia z baza danych"); mysql_select_db("dziennik") or die ("Nie można wybrac takiej bazy danych"); $mail = $_POST['mail']; $password = $_POST['password']; $query = mysql_query("SELECT * FROM `user` WHERE mail='$mail'"); $row = mysql_fetch_array($query); if($row) { if(md5($password) == $row['password']) { $_SESSION['logowanie'] = $mail; $function = mysql_query("SELECT ident_function FROM user WHERE mail='$mail'") or die ("Błąd w zapytaniu\n"); $result = mysql_fetch_array($function); switch($result) { case 3: header("Location: teacher.php"); break; case 2: header("Location: pupil.php"); break; case 1: header("Location: pupil.php"); break; default: print ("Skontaktuj sie z administratorem"); break; } } else{ echo('Błędne hasło!'); } } else{ echo('Konto nie istnieje!'); } mysql_close(); ?> |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 122 Dołączył: 17.07.2005 Skąd: P-na Ostrzeżenie: (0%) ![]() ![]() |
i przez 3 dni nie wpadłeś na to żeby zrobić var_dump($result) i się dowiedzieć ze masz tam tablice a nie skalara?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 21.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo. Mogę prosić o wskazówkę, jak to poprawić?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
1) Uzywaj bbcode
2) Uzywaj manuala. W manualu wyraźnie jest podane, ze mysql_fetch_array() zwraca tablicę będącą reprezentacją rekordu, a nie pojedynczą kolumne jak ty sobie myslales. 3) Wyswietlaj wartosci zmiennych na ktorych pracujesz to nie bedziesz sie bez sensu dziwil var_dump($result); i od razu wiadomo czemu switch nie dziala jak bys oczekiwal To są podstawy podstaw programowania. Naucz się do nich stosowac. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 18:30 |