Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Klasa do obsługi sesji - nie działa...
jacu
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 17.07.2005

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


Witam,
napisałem sobie prostą klasę do obsługi sesji:
  1. <?php
  2.  
  3. class sesja
  4. {
  5.  function sesja()
  6.  {
  7.  }
  8.  
  9.  function usunDaneSesji()
  10.  {
  11. $_SESSION = array();
  12. die();
  13.  }
  14.  
  15.  function czyIstnieje()
  16.  {
  17.  if(isset($_SESSION['user_id'])) return TRUE;
  18.  else return FALSE;
  19.  }
  20.  
  21.  function __set($zmienna, $wart)
  22.  {
  23. $_SESSION[$zmienna]=$wart;
  24.  }
  25.  
  26.  function __get($zm)
  27.  {
  28.  return $_SESSION[$zm];
  29.  }
  30. }
  31. ?>


I teraz mam prosty kod:
  1. <?php
  2.  
  3. $sesja = new sesja();
  4. $sesja->user_id = $user_id;
  5. print_r($_SESSION);
  6.  
  7. ?>

I taki skrpyt wyświetla mi pustą tablicę... Gdy 4. wiersz zamienię na $_SESSION['user_id'] = $user_id; , wszystko jest w porządku.... Co jest źle w tej klasie? To dopiero moje początki z php obiektowym, wybaczcie... winksmiley.jpg
Używam php 4.3.10.
Go to the top of the page
+Quote Post
dasko
post
Post #2





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 9.11.2004

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


Przecież przeładowywanie - w twoim wypadku __get i __set - zostało wprowadzone dopiero w PHP5.
Go to the top of the page
+Quote Post
jacu
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 17.07.2005

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


Naprawdę? Ech... To w takim razie zaraz zainstaluję php 5.
Dzięki za pomoc! (taki szczegół, a potrafi mocno wkurzyć...)
Go to the top of the page
+Quote Post
Wicko
post
Post #4





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 30.07.2005

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


spróbuj coś a'la to:
  1. <?php
  2.  
  3. class sesja
  4.  
  5. var $user = array();
  6.  
  7. {
  8. function sesja()
  9. {
  10. if($this->czyIstnieje()) {
  11. $userdata['id'] == $_SESSION['user_id'];
  12. $userdata['name'] == $_SESSION['user_name']; 
  13. //itd.
  14.  
  15. $this->user = $userdata;
  16. }
  17. }
  18.  
  19. function usunDaneSesji()
  20. {
  21. $_SESSION = array();
  22. die();
  23. }
  24.  
  25. function czyIstnieje()
  26. {
  27. if(isset($_SESSION['user_id'])) return TRUE;
  28. else return FALSE;
  29. }
  30.  
  31. function __set($zmienna, $wart)
  32. {
  33. $_SESSION[$zmienna]=$wart;
  34. }
  35.  
  36. function __get($zm)
  37. {
  38.  return $_SESSION[$zm];
  39. }
  40. }
  41.  
  42. ?>


:-) wtedy id wywolujesz przez $sesja->user['id'].. ja mam cos podobnego w swojej klasie: ( uwaga, dlugie ;-) )

  1. <?
  2. $login = new log;
  3. class log {
  4. var $file = 'FILES/php/admin/users.php';
  5. var $member = array();
  6. var $edit_link = 'index.php?co=ucp&amp;akcja=edit';
  7. var $reg_link = 'index.php?co=ucp&amp;akcja=register';
  8. var $out_link = 'index.php?co=ucp&amp;akcja=logout';
  9.  
  10. function log() {
  11.  
  12. if($this->is_logged()) { 
  13.  
  14. $this->load_up_member();
  15. } else {
  16.  
  17. $this->member['id'] = 0;
  18. }
  19.  
  20. }
  21.  
  22.  
  23.  
  24. function load_up_member() {
  25. $plik=file($this->file);
  26.  
  27. foreach($plik as $user) {
  28. $user=explode('||', $user);
  29. if($user[0]==$_SESSION['id']) {
  30. $memberdata['id'] = $user[0];
  31. $memberdata['name'] = $user[2];
  32. $memberdata['mgroup'] = $user[1];
  33. $memberdata['email'] = $user[4];
  34. $memberdata['avatar_location'] = $user[5];
  35. $memberdata['set_news'] = $user[6];
  36. $memberdata['ip_address'] = $user[7];
  37. $memberdata['hide_email'] = $user[8];
  38. $memberdata['view_avs'] = $user[9];
  39. $memberdata['skin'] = $user[10];
  40. $this->member = $memberdata;
  41. }
  42. }
  43.  
  44. }
  45.  
  46. function is_mod() {
  47. if(($this->member['mgroup']=='2') || ($this->member['mgroup']=='1')) {
  48. return true;
  49. } else {
  50. return false;
  51. }
  52. }
  53.  
  54. function is_admin() {
  55. if($this->member['mgroup']=='1') {
  56. return true;
  57. } else {
  58. return false;
  59. }
  60. }
  61.  
  62. function is_logged() {
  63. if(isset($_SESSION['id'])) {
  64. return true;
  65. } else {
  66. return false;
  67. }
  68. }
  69.  
  70. function login($login, $pass) {
  71. $plik=file($this->file);
  72.  
  73. foreach($plik as $user) {
  74. $user=explode('||', $user);
  75. $haslo_md5=md5($pass);
  76. if(($login==$user[2]) && ($haslo_md5==$user[3])) {
  77. $_SESSION['id']=$user[0];
  78. return true;
  79. }
  80. }
  81. return false;
  82. }
  83.  
  84.  
  85. function logout() {
  86. if($this->is_logged()) {
  87. unset($_SESSION['id']);
  88.  return true;
  89. } else {
  90. return false;
  91. }
  92. }
  93.  
  94.  
  95.  
  96. }
  97.  
  98. ?>
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: 22.08.2025 - 05:37