Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasa do obsługi sesji - nie działa...
Forum PHP.pl > Forum > PHP
jacu
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.
dasko
Przecież przeładowywanie - w twoim wypadku __get i __set - zostało wprowadzone dopiero w PHP5.
jacu
Naprawdę? Ech... To w takim razie zaraz zainstaluję php 5.
Dzięki za pomoc! (taki szczegół, a potrafi mocno wkurzyć...)
Wicko
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. ?>
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.