Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [klasa] User.class.php, Klasa uzytkownicy bardzo prosta
fannet
post
Post #1





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

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


Napisałem takie "coś" i mam nadzieję że jest to klasopodobne. Proszę o opinie, dobrze myślę czy też nie. Osobiście mam wrażenie że zamknełem kod strukturalny w klasie i nic więcej. Aczkolwiek szukając w internecie ciężko jest trafić na coś zrozumiałego. W większości spotkykam się z informacją co to jest klasa i jak ją stworzyć, dziedziczenie czy parę słów o hermetyzacji.. ;(

Proszę Was również o możliwe przykłady klas, nie zbyt skomplikowanych lecz ukazujących myślenie obiektowe, jeżeli takowa znacie wink.gif

  1. <?php
  2.  
  3. class User
  4. {
  5.  
  6. private $userid;
  7. private $userName;
  8. private $userEmail;
  9.  
  10. // Konstruktor pobiera dane uzytkownika, jezeli użytkonik nie jest zalogowany zglasza blad
  11. public function __construct()
  12. {
  13. if(!static::IsUserOnline())
  14. {
  15. throw new Exception("BRAK DOSTEPU DO TEJ STRONY");
  16. }
  17.  
  18. $this->GetUserData($_SESSION['user']);
  19. }
  20.  
  21. // Pobiera dane użytkowników
  22. public function GetUserData($id)
  23. {
  24. if(isset($id) && is_numeric($id))
  25. {
  26. $result = DatabaseManager::selectBySQL("SELECT userName FROM users WHERE userName = $id LIMIT 1");
  27. foreach ($result as $r)
  28. {
  29. $this->userName = $r['userName'];
  30. $this->userEmail = $r['userEmail'];
  31. }
  32. }
  33. }
  34.  
  35. // Loguje użytkonwika do serwisu
  36. public function UserLogin($name, $pass)
  37. {
  38. $name = mysql_escape_string($name);
  39. $pass = mysql_escape_string($pass);
  40. $result = DatabaseManager::selectBySQL("SELECT userid FROM users WHERE userName = '$name' && userPass = md5('$pass') LIMIT 1");
  41.  
  42. if($result)
  43. return $_SESSION['user'] = $result[0]['userid'];
  44. else
  45. return false;
  46. }
  47.  
  48. // Wylogowanie użytkonika z bazy danych
  49. public function UserLogout()
  50. {
  51. $_SESSION['user'] = false;
  52. }
  53.  
  54. // Tworzy nowego użtykonika
  55. static function SetNewUser($user, $email, $pass, $pass2)
  56. {
  57. // tworzymy polaczenie z baza danych
  58. $db = DatabaseManager::getConnection();
  59.  
  60. // Sprawdzamy czy użytkownik istnieje
  61. $checkUsers = $db->query("SELECT nick FROM users WHERE nick = $user");
  62. if(count($checkUsers) >= 1)
  63. return $msg = "Podana nazwa uzytkownika juz istnieje";
  64.  
  65. // Sprawdzamy czy podane hasła są jednakowe
  66. if($pass == $pass2)
  67. return $msg = "Podane hasła nie są jednakowe";
  68.  
  69. // Sprawdzamy poprawnosc adresu email
  70. if(!filter_var($email, FILTER_VALIDATE_EMAIL))
  71. return $msg = "Adres email jest nie poprawny";
  72.  
  73. // Wysyłamy użytkownika do bazy danych
  74. $query = $db->query("INSERT INTO users (`id`,`nick`,`email`,`pass`) VALUES (NULL, '$user', '$email', 'md5($pass)');");
  75. return $msg = false;
  76. }
  77.  
  78. // Funkcja statyczna sprawdzajaca czy uzytkonik jest zalogowany
  79. static function IsUserOnline()
  80. {
  81. if(isset($_SESSION['user']) && $_SESSION['user'] && is_numeric($_SESSION['user']))
  82. return true;
  83. else
  84. return false;
  85. }
  86. }
  87.  
  88. ?>


Pozdrawiam, Luke wink.gif
Go to the top of the page
+Quote Post

Posty w temacie


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: 19.08.2025 - 15:41