www.eprace.edu.pl » budynek-inteligentny » Zasady i zabezpieczenia systemu » Generowanie zmiennych sesji w oparciu o to, kto się zalogował

Generowanie zmiennych sesji w oparciu o to, kto się zalogował

W przypadku opisywanej aplikacji, wszystkie dane odnośnie zalogowanego użytkownika są przechowywane w zmiennych sesji. Do generowania zmiennych sesji służy funkcja setsessionvars, której kod przedstawiłem poniżej.

function setsessionvars($login){

require_once('objects/db.php');

require_once('objects/defines.var.php');

$roomtypes=array();

$rightypes=array();

$db = new db;

$db -> conn(db_adress,db_user,db_password);

$db -> selectDB(db_name);

$db->query("select user_id,user_type_id from users where login='$login'");

$row=$db->nextrow();

$id=$row[user_id];

$allrights=0;

Zapytanie poniżej, zwraca wszystkie rekordy z tabeli user_rights w których user_id to user_id, po to żeby wiedzieć jakie dany użytkownik ma typy praw i żeby potem stworzyć odpowiednie menu w oparciu o wygenerowana tablice zawierająca prawa dla danego użytkownika.

$db->query("

SELECT * FROM users as u RIGHT JOIN user_rights as ur ON u.user_id = ur.user_id WHERE ur.user_id='$id'");

while ($row=$db->nextrow()){

$rightypes[]=$row[user_right_type_id];

if ($row[user_right_type_id]==1){$allrights=1;}

}

Zapytanie poniżej, zwraca wszystkie rekordy z tabeli room_rights, w których user_id to aktualny identyfikator zalogowanego w systemie użytkownika, po to żeby wiedzieć, jakie dany użytkownik typy pokoi może wyświetlać lub wyszukiwać. Generowana jest tablica zawierająca zdefiniowane dla danego użytkownika typy pokoi.

$db->query("

SELECT * FROM users as u RIGHT JOIN room_rights as rr ON u.user_id = rr.user_id WHERE rr.user_id='$id'");

$all=0;

while ($row=$db->nextrow()){

$roomtypes[]=$row[room_type_id];

if ($row[room_type_id]==16) {$all=1;}

}

Rejestrowane są zmienne sesji w których odpowiednio przechowywane są login , typ użytkownika , jakie użytkownik ma prawa i jakie typy pomieszczeń może oglądać oraz czy jest ustawiona zmienna wszystkie prawa oraz wszystkie typy pomieszczeń.

$_SESSION['user']=$login;

$_SESSION['type']=$id;

$_SESSION['rightypes']=$rightypes;

$_SESSION['roomtypes']=$roomtypes;

$_SESSION['allrooms']=$all;

$_SESSION['allrights']=$allrights;



komentarze

Copyright © 2008-2010 EPrace oraz autorzy prac.