Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] klasa logowania, Pytanie o model i controller
slimboj
post 13.05.2009, 12:28:09
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 6.01.2008

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


Witam,
Właśnie piszę klasę odpowiadającą za logowanie. Staram się to zrobić zgodnie z modelem MVC.
Model pobiera informacje z bazy i zwraca 0 jeśli się nie udało pobrać danych i 1 jeśli się udało. Wygląda to mniej więcej tak:
  1. <?
  2.  
  3. class MdlLogin
  4. {
  5. public function login($tb_prefix, $db_logon)
  6. {
  7.  $select = mysql_query("SELECT * FROM ".$tb_prefix."users WHERE user_login = ".$_POST['login']." AND user_password = ".md5($_POST['password'])."");
  8.  if(!$do_select = mysql_fetch_array($select))
  9.  {
  10.   $db_logon = 0;
  11.  }
  12.  else
  13.  {
  14.   $db_logon = 1;
  15.   $_SESSION['user'] = $do_select['user_login'];  
  16.  }
  17. }
  18. }
  19.  
  20. ?>

I teraz moje pytanie, a właściwie kilka.

1. Czy przekazywanie wyniku zapytania przez parametr $db_logon jest poprawne, a jeśli nie to jak inaczej to zrobić?
2. Czy sprawdzenie wyniku funkcji login zrobić w kontrolerze czy w modelu?
3. Czy funkcja session_destroy() w przypadku niepowodzenia i przypisanie wartoście do $_SESSION['user'] mają być wywoływane w modelu czy w widoku?

Pozdrawiam,
Max

Ten post edytował slimboj 13.05.2009, 12:37:31
Go to the top of the page
+Quote Post
Leliw
post 14.05.2009, 11:58:21
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.04.2009
Skąd: Gdańsk

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


Cytat(slimboj @ 13.05.2009, 13:28:09 ) *
1. Czy przekazywanie wyniku zapytania przez parametr $db_logon jest poprawne, a jeśli nie to jak inaczej to zrobić?
2. Czy sprawdzenie wyniku funkcji login zrobić w kontrolerze czy w modelu?
3. Czy funkcja session_destroy() w przypadku niepowodzenia i przypisanie wartoście do $_SESSION['user'] mają być wywoływane w modelu czy w widoku?


IMHO
1. Chyba raczej nie za działa, w definicji metody parametr zwracany powinien być poprzedzony znakiem & (public function login($tb_prefix, &$db_logon)). Możesz tak, ale chyba lepiej zwrócić rezultat przez return i zdecydowanie lepiej użyć wartości true i false.
2. Zależy po co sprawdzasz. Jeśli po to, aby wyświetlić komunikat "logowanie nieudane" - w kontrolerze, jeśli np. zalogowani użytkownicy mają dostęp większej ilości danych - w modelu, tam gdzie dane są udostępniane widokom.
3. Najlepiej tam gdzie używasz session_start().


--------------------
Programy-online
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 Wersja Lo-Fi Aktualny czas: 13.07.2025 - 09:22