Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] logowanie na www (sesje, uprawnienia)
Forum PHP.pl > Forum > Przedszkole
DooBLER
Witam

Pisza na swoje potrzeby małego frameworka (jest to mój pierwszy projekt tego typu, wczesniej tylko jakies wstawki php w htmlu) opieram się na różnych kursach i poradnikach.

Natknąłem się na problem odnośnie uprawnień użytkowników i samego logowania.

Logowanie (i proste liczniki odwiedzin) zawarłem w jednej funkcji, która będzie wykonywana przy kazdym ladowaniu strony:


  1. <?php
  2. function Sesje()
  3. {
  4.  
  5. $zap = "SELECT * FROM `liczniki` WHERE nazwa='l_unikalne'";
  6. $result = $this->m_objBaza->Execute($zap);
  7. $l_unikalne=$result->fields[stan];
  8.  
  9. $zap = "SELECT * FROM `liczniki` WHERE nazwa='l_wejscia'";
  10. $result = $this->m_objBaza->Execute($zap);
  11. $l_wejscia = $result->fields[stan];
  12.  
  13. $l_wejsc_user=$_COOKIE[czybyl];
  14.  
  15.  
  16. if (isset($_POST[login]) && isset($_POST[haslo]) && ($_POST[login] != '') && ($_POST[haslo] != ''))
  17. {
  18. $zap = "SELECT * FROM `user` WHERE login='$_POST[login]' AND haslo='$_POST[haslo]'";
  19. $result = $this->m_objBaza->Execute($zap);
  20. if ($result->RecordCount()==1)
  21. {
  22. $_SESSION['login']=$_POST['login'];
  23. $_SESSION['haslo']=$_POST['haslo'];
  24. }
  25. else 
  26. {
  27. echo ('Zly login lub haslo!');
  28. }
  29. }
  30.  
  31.  
  32. if (!isset($_SESSION['login']))
  33. {
  34. if((isset($_COOKIE[czybyl])) && ($_COOKIE[czybyl] != ''))
  35. {
  36. $l_wejsc_user++;
  37. setcookie(czybyl, $l_wejsc_user, time()+43200);
  38. }
  39. else
  40. {
  41. setcookie(czybyl, 1, time()+43200);
  42. $l_wejsc_user=1;
  43.  
  44. $l_unikalne++;
  45.  
  46. $zap = "UPDATE `liczniki` SET `stan` = '$l_unikalne' WHERE `nazwa`='l_unikalne' LIMIT 1 ;";
  47. $this->m_objBaza->Execute($zap);
  48. }
  49.  
  50. $l_wejscia++;
  51.  
  52. $zap = "UPDATE `liczniki` SET `stan` = '$l_wejscia' WHERE `nazwa`='l_wejscia' LIMIT 1 ;";
  53. $this->m_objBaza->Execute($zap);
  54.  
  55. $_SESSION['login']="Gość";
  56. }
  57.  
  58. $test=$_SESSION['login'];
  59. }
  60. ?>



Do wyświetlania na stronie wykożystalem system szablonów Smarty
Do łączenia z bazą danych użyte jest AdoDB

Układ tabel w bazie

1. tabela liczniki

nazwa | san
-------------+----
l_ununikalne | INT(5)
l_wejscia | INT(5)

2. tabela user

id | login | haslo | uprawninia
--+-------+-------+------------
0 | jas | 123 | admin (?)
1 | ala | 321 | zwykły user

Ni mam pojęcia jak zapisać uprawnienia (potrzebyje chyba 3 uprawnień - dla nie zalogowanych, dla zalogowanych zwykłych userów, dla administratora)

Jak potem sprawdzać te prawa? np na w księdze gości dla administratora przy każdym wpisie powinny pokazywać się pryciski do edycji i usówania a dla innych użytkowników nie powinno ich am być.

Sama logika konkretnych podstron jest zapisana jako obiekty, które są ładowane w zależności od wybranych odnośników więc nie ma problemu z dodaniem tam jakiegoś kodu...

Dzieki z góry za pomoc
Pozdrawiam
Kicok
Zapisz sobie uprawnienia do sesji. Domyślnie ustaw: $_SESSION['user_type'] = 0, a po zalogowaniu zmień na przykład na 1(zalogowany) lub 2(administrator)
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.