Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Logowanie z podziałem ról użytkowników
Forum PHP.pl > Forum > Przedszkole
talia
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();
?>
johny_s
i przez 3 dni nie wpadłeś na to żeby zrobić var_dump($result) i się dowiedzieć ze masz tam tablice a nie skalara?
talia
Nie bardzo. Mogę prosić o wskazówkę, jak to poprawić?
nospor
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.