Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] logowanie na www (sesje, uprawnienia)
DooBLER
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.08.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Kicok
post
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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)
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: 23.12.2025 - 03:21