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();
?>