Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] MVC i klasa z autoryzacją, czy to powinno tak wygladać ?
bor1904
post 26.12.2009, 01:28:29
Post #1





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 15.10.2009
Skąd: gdańsk

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


Witam
Zaczynam dopiero przygodę z OOP w PHP5 i modelem MVC, a muszę zacząć kodować jednocześnie ucząc się teorii sad.gif
Czy to co zaprezentowałem poniżej ma choć odrobine sensu ? może niewiele trzeba by nabrało ? smile.gif

  1. <?php
  2.  
  3. ///klasa obsługująca autoryzację na stronie
  4. //(każde "wejście na serwer WWW"-czyli wywołanie index.php ma się wiązać ze stworzeniem instancji tej klasy)
  5. //potem instancja Front Controlera bedzie w pierwszej kolejności sprawdzała czy user jest zalogowany :
  6. //nie : wywołanie kontrolera akcji "logowanie" -> WIDOK GENERUJE FORMULARZ DO LOGOWANIA
  7. //tak: na podstawie $_GET wybiera kontroler akcji -> MODEL robi swoje -> WIDOK obiera dane z modelu w HTML i do przeglądarki
  8. ///Czy to ma sens ? Dopiero zaczynam z OOP w PHP i MVC - dąże do popełnienia mega prostego "frameworka" z obowiązkową autoryzacją
  9. class UserAuth {
  10. //pole przechowujace info czy dany użytkownik jest zalogowany czy nie
  11. private $logged_in;
  12. // sprawdzenie czy posiadacz tego nr sesjii i adresu ip przy logowaniu podał poprawne dane i czy w ogóle sie logował
  13. public function __construct() {
  14. if(isset($_SESSION['isLoggedIn'])){
  15. if(($_SESSION['isLoggedIn'] == 'yes') && ($_SERVER['REMOTE_ADDR'] == $_SESSION['REMOTE_ADDR'])){
  16. $this->logged_in = yes;
  17. }
  18. }else{
  19. $this->logged_in = no;
  20. $_SESSION['isLoggedIn'] = 'no';
  21. }
  22. }
  23.  
  24. //zwraca czy dany użytkownik jest zalogowany
  25. //pytanie: czy zrobić tą funkcję statyczną ? wydaje mi się, że nie ma różnicy
  26. public function IsLoggedIn() {
  27. return($this->logged_in);
  28. }
  29.  
  30. //funkcja pobiera "z widoku" login i hasło -docelowo md5 będzie szyfrowaćjs po stronie klienta oraz zapamiętuje adres ip zdalnej maszyny
  31. //pytanie: zakładając, że tylko jeden user bedzie sie logował(zawsze) i plik z tą klasą będzie niedostępny "DenyAccess"
  32. //to czy login i hasło moge w tym pliku przechowywać questionmark.gif?
  33. public function Login($strUsername, $strPlainPassword) {
  34. $strMD5Password = md5($strPlainPassword);
  35. if (($strUsername == admin) && ($strMD5Password == md5('password'))) {
  36. $_SESSION['REMOTE_ADDR'] = $_SERVER['REMOTE_ADDR'];
  37. $_SESSION['isLoggedIn'] = 'yes';
  38. $this->logged_in = yes;
  39. }else{
  40. $_SESSION['isLoggedIn'] == 'no';
  41. $this->logged_in = no;
  42. }
  43. }
  44.  
  45. //wylogowuje danego użytkownika
  46. //pytanie: czy zrobić to tak jak jest czy zniszczyć przy pomocy destroy_session() questionmark.gif
  47. public function LogOut() {
  48. $_SESSION['isLoggedIn'] == 'no';
  49. $this->logged_in = no;
  50. }
  51. }
  52.  
  53. ?>


Dziękuję za każdą pomoc i pozdrawiam

Wesołych
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:29