1. Napisałem własną funkcję logowania użytkownika, oto ona:
public function Login($Login, $Haslo) { { if(!$Login | !$Hasło) { } else { $Query = mysql_fetch_array(mysql_query("SELECT `Login`, `Haslo`, `IP` FROM `users` WHERE `Login` = '".$Login."'")); $Check = mysql_num_rows(mysql_query("SELECT `Login`, `Haslo` FROM `users` WHERE `Login` = '".$Login."'")); if($Check == 0) { } else { { $IP = ''.$Query['IP'].';\n'.$_SERVER['REMOTE_ADDR'].''; $this->User->Login = $Login; $this->User->Zalogowany = 1; if(mysql_query("UPDATE `users` SET `LastActivity` = '".$Data."', `Online` = 1, `Czas` = ".time().", `IP` = '".$IP."' WHERE `Login` = '".$Login."'")) { 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>'; $_SESSION['Login'] = $this->User->Login; $_SESSION['Czas'] = $this->User->Time; } { } } else { } } } } }
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:
<?php include("core.php"); $Gra = $_SESSION['Gra']; else $Gra = new Game(); $_SESSION['Gra'] = $Gra; ?>
Pozdrawiam i oczekuję na odpowiedź
