![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 21.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam taki kłopot:
robię dziennik lekcyjny na bazie danych. Jest logowanie i sesja. Mam 3 typy użytkowników: uczeń, rodzic,nauczyciel. Zrobiłam logowanie. Działa - jeśli użytkownik nie jest zalogowany, wyrzuca go na stronę główną. Ale problem jest, jeśli jest zalogowany jako uczeń, wejdzie na swoją strone i "z palca" w adresie strony podmieni show_pupil na show_teacher. Wtedy pokazuje mu panel nauczyciela. Czyli powinnam chyba oprócz sprawdzenia czy użytkownik jest zalogowany także sprawdzić uprawnienia. Kombinuję, ale nie działa. Za uprawnienia odpowiada kolumna ident_function w tabeli user. 1-uczen 2-rodzic 3-nauczciel [PHP] pobierz, plaintext <?php session_start(); //logowanie do bazy $mail = $_POST['mail']; $password = $_POST['password']; $query = "SELECT * FROM `user` WHERE mail='$mail'"; $result = mysql_query($query, $db_link) or die ("Błąd w zapytaniu\n"); $liczba_wierszy=mysql_num_rows($result); $row = mysql_fetch_array($result); if($row) { if(md5($password) == $row['password']) { $_SESSION['id_user'] = $row['id_user']; $result=$row['ident_function']; switch($result) { case 3: header("Location: baza_show_teacher.php"); break; case 2: header("Location: baza_show_parent.php"); break; case 1: header("Location: baza_show_pupil.php"); break; default: print ("Skontaktuj sie z administratorem"); break; } } else{ echo('Błędne hasło!'); } } else{ echo('Konto nie istnieje!'); } mysql_close(); ?> [PHP] pobierz, plaintext oraz wyświetlanie danych na stronie: [PHP] pobierz, plaintext <?php session_start(); if(!isset($_SESSION['id_user'])) { include('index2.php'); exit(); } $user = $_SESSION['id_user']; ?> [PHP] pobierz, plaintext i dalej zapytania sql... |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 21.04.2014 Ostrzeżenie: (0%) ![]() ![]() |
ident_function wrzuć do sesji
row["ident_function"] = $_SESSION["prawo"]; switch($_SESSION["prawo"]) { case 1: echo "tekst dla ucznia"; break; case 2: echo "tekst rodzica"; break; case 3: echo "tekst nauczyciela"; break; } tutaj nie da się wpisać z palca Ten post edytował jahonen 14.06.2014, 21:47:24 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 21.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za podpowiedź. Ale właśnie że "kumaty uczeń" wejdzie na stronę nauczyciela. Po zalogowaniu na ucznia przerzuca mnie na stronę z koncówką adresu baza_show_pupil. Tutaj w adresie poprawiam ręcznie na baza_show_teacher i wchodzę na stronkę nauczyciela. Bo jestem zalogowana przecież. Chodzi mi o to, jak na początku każdej strony należy ją zabezpieczyć, oprócz:
? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 21.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jest reakcja, tylko nie taka, jak oczekiwano. Teraz w ogóle nie wyświetla ocen np. ucznia i przekierowuje na stronę index2.php. Nie umiem dojść, czego jeszcze tu brakuje. Zmienna $row['ident_function'] pojawia się w pliku logowanie, więc na kolejnej stronie powinien ją znać. Działa ![]() W pliku logowanie do $_SESSION['id_user'] = $row['id_user'] dodałam $_SESSION['ident_function'] = $row['ident_function']; I przy wejściu na stronę ucznia jest: if(!isset($_SESSION['id_user'])|| ($_SESSION['ident_function'])!=1) { include('index2.php'); exit(); } Dzięki! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.07.2025 - 15:47 |