Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Logowanie z podziałem ról użytkowników
talia
post
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();
?>
Go to the top of the page
+Quote Post
johny_s
post
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?
Go to the top of the page
+Quote Post
talia
post
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ć?
Go to the top of the page
+Quote Post
nospor
post
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

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:30