Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Ocena skryptu logowania
dyndel
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 24.06.2009
Skąd: Rusinów

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


Mam kilka pytań, do rzeczy:
1. Napisałem własną funkcję logowania użytkownika, oto ona:

  1. public function Login($Login, $Haslo)
  2. {
  3. if(isset($_POST['login']))
  4. {
  5. if(!$Login | !$Hasło)
  6. {
  7. echo $this->Error(''.$this->Lang[20].' '.$this->Lang[22].'');
  8. }
  9. else
  10. {
  11. $Query = mysql_fetch_array(mysql_query("SELECT `Login`, `Haslo`, `IP` FROM `users` WHERE `Login` = '".$Login."'"));
  12. $Check = mysql_num_rows(mysql_query("SELECT `Login`, `Haslo` FROM `users` WHERE `Login` = '".$Login."'"));
  13. if($Check == 0)
  14. {
  15. echo $this->Error(''.$this->Lang[20].' '.$this->Lang[23].'');
  16. }
  17. else
  18. {
  19. if(md5($Hasło) == $Query['Haslo'])
  20. {
  21. $IP = ''.$Query['IP'].';\n'.$_SERVER['REMOTE_ADDR'].'';
  22. $Data = date('d.m.Y, H:i:s');
  23. $this->User->Login = $Login;
  24. $this->User->Zalogowany = 1;
  25. $this->User->Time = time();
  26. if(mysql_query("UPDATE `users` SET `LastActivity` = '".$Data."', `Online` = 1, `Czas` = ".time().", `IP` = '".$IP."' WHERE `Login` = '".$Login."'"))
  27. {
  28. echo ''.$this->Green($this->Lang['24']).'<br><a href="'.$this->Adres.'" style="color: green; text-align: center; font-weight: bold;">'.$this->Green($this->Lang['21']).'</a>';
  29. $_SESSION['Login'] = $this->User->Login;
  30. $_SESSION['Czas'] = $this->User->Time;
  31. }
  32. {
  33. echo ''.$this->Error($this->Lang['52']).'(CODE #2)';
  34. }
  35. }
  36. else
  37. {
  38. echo $this->Error(''.$this->Lang[20].' '.$this->Lang[47].'');
  39. }
  40. }
  41. }
  42. }
  43. }

Wywoływana jest ona z poziomu konstruktora głównego obiektu skryptu, gdy na podstawie zmiennej $_GET['idz-do'] w instrukcji switch wywołuje/dołączam odpowiednie funkcje/pliki.

Funkcje Error i Green "upiększają" tekst podany w argumencie, dzięki czemu wygląda on jak komunikat błędu lub powodzenia akcji.

$this-Lang - "tablica językowa", dołączana w konstruktorze obiektu User

Prosiłbym o ogólną opinie na temat funkcji. Jakie są zagrożenia płynące z używania takowej funkcji??

2. Jak mogę uzyskać dostęp do pola obiektu głównego z obiektu podrzędnego?? Przykład: w obiekcie głównym Gra mam pole $Lang i chcę go użyć w obiekcie podrzędnym User.

3. Czy warto przechowywać obiekt w sesji?? Przykład pliku index.php:
  1. <?php
  2. include("core.php");
  3. if(isset($_SESSION['Gra']))
  4. $Gra = $_SESSION['Gra'];
  5. else
  6. $Gra = new Game();
  7.  
  8. $_SESSION['Gra'] = $Gra;
  9. ?>


Pozdrawiam i oczekuję na odpowiedź (IMG:style_emoticons/default/winksmiley.jpg)
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: 2.10.2025 - 22:25