Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa Autoryzacji - prośba o opinie
dopelganger
post
Post #1





Grupa: Zarejestrowani
Postów: 236
Pomógł: 0
Dołączył: 27.10.2012

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


Witam,
jestem początkujący w OOP i postanowiłem napisać własną klasę logowania. Poniżej kod klasy i jej użycie. Proszę o opinie, uwagi, będę wdzięczny. Nie wiem czy dobrze rozumię niektóre aspekty oop stąd moje zapytanie.
Dzięki.

  1. // użycie klasy na stronie poniżej, pomijam formularz logowania HTML, jedynie kod PHP wklejam:
  2.  
  3. <?php
  4.  
  5. $user = strip_tags(addslashes(trim($_POST["user"])));
  6. $password = strip_tags(addslashes(trim($_POST["password"])));
  7.  
  8. $log = new Authorization();
  9. $log->setUser($user);
  10. $log->setPassword($password);
  11. $log->Login();
  12.  
  13. ?>


Kod klasy:

  1. <?php
  2.  
  3. class Authorization {
  4.  
  5. private $_user;
  6. private $_password;
  7. private $_dbpdo;
  8.  
  9. public function __construct() {
  10. try
  11. {
  12. global $db;
  13. $pdo = new PDO('mysql:host='.$db["Host"].';dbname='.$db["Name"], $db["User"], $db["Password"]);
  14. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  15. $this->_dbpdo = $pdo;
  16. }
  17. catch(PDOException $error)
  18. {
  19. echo $error->getMessage();
  20. }
  21. }
  22.  
  23. public function setUser($user) {
  24. $this->_user = $user;
  25. }
  26.  
  27. public function setPassword($password) {
  28. $this->_password = $password;
  29. }
  30.  
  31. public function getUser() {
  32. return $this->_user;
  33. }
  34.  
  35. public function getPassword() {
  36. return $this->_password;
  37. }
  38.  
  39. public function validateUsr() {
  40. if ( ($this->getUser())=='' || ($this->getPassword())=='' ) {
  41. echo '<p class="errorMsg">Wprowadź login i hasło!</p>';
  42. }
  43. }
  44.  
  45. public function checkIsUsr() {
  46. $password = @md5($this->getPassword());
  47. $sql = $this->_dbpdo->prepare("SELECT * FROM users WHERE login=:user AND password=:password LIMIT 1");
  48. $sql->bindValue(':user',$this->getUser(),PDO::PARAM_STR);
  49. $sql->bindValue(':password',$password,PDO::PARAM_STR);
  50. $sql->execute();
  51. if ($row = $sql->fetch()) {
  52. return array($row['id'], $row['login']);
  53. } else {
  54. echo '<p class="errorMsg">Nieprawidłowy login i/lub hasło!</p>';
  55. }
  56. $sql->closeCursor();
  57. }
  58.  
  59. public function Login() {
  60. $this->validateUsr();
  61. $data_user = $this->checkIsUsr();
  62. $_SESSION['id_usr'] = $data_user[0];
  63. $_SESSION['login_usr'] = $data_user[1];
  64. ini_set('session.cookie_httponly', 1);
  65. }
  66.  
  67. }
  68.  
  69. ?>


Ten post edytował dopelganger 21.08.2013, 09:20:11
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 05:16