Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z kolejnością wywoływania klas
Forum PHP.pl > Forum > PHP
wojto
Witam,
Z klasami nie mialem wczesniej do czynienia i napotkalem na pewien, pewnie dla innych maly problem, otoz:
Mam klase sessions (sluzy do przechowywania sesji w bazie danych) a w niej w metodzie read($id) chce zrobic, aby mi zapisywalo do sesji id uzytkownika, do ktorego ona nalezy (oczywiscie jesli ten uzytkownik sie juz zalogowal)
skrocony kod:
  1. <?php
  2. function read($id) {
  3. global $db, $auth;
  4.  
  5. $db -> sql_query(&#092;"UPDATE sessions SET user_id='\".$auth -> user_id.\"', last_active=UNIX_TIMESTAMP() WHERE id='\".$id.\"'\");
  6. }
  7.  
  8. ?>

i mam klase auth, ktora sprawdza, czy user jest zalogowany, jesli tak, to przypisuje mu range uzytkownika.
skrocony kod:
  1. <?php
  2. class auth
  3. {
  4. var $user_id = 0;
  5.  
  6. function auth()
  7. {
  8. global $db;
  9.  
  10. if ((!empty($_SESSION['login'])) && (!empty($_SESSION['password']))) {
  11. $sql_use_hea = $db -> sql_query(&#092;"SELECT id, password, rank, language FROM users WHERE login='\".$_SESSION['login'].\"'\");
  12. $row_use_hea = $db -> sql_fetch_array($sql_use_hea);
  13.  
  14. if ($_SESSION['password'] == $row_use_hea['password']) {
  15. $this -> user_id = $row_use_hea['id'];
  16. }
  17. }
  18. }
  19. ?>

w pliku config.php najpierw tworze obiekt sesji, a pozniej obiekt auth:
  1. <?php
  2. include_once('includes/session.class.php');
  3. $session = new session(600);
  4.  
  5. include_once('includes/auth.class.php');
  6. $auth = new auth();
  7.  
  8. ?>

i problem jest w tym, ze w tej metodzie read z klasy sesji nie widzi mi zmiennej id_uzytkownika ($auth -> user_id), pewnie przez kolejnosc inicjowania klas.
Nie wiem jak to rozwiazac, zmiana kolejnosci nic nie daje, moze jakies dziedziczenie?
Z gory dziekuje za pomoc.
donpablo
np. klase auth dziedziczysz od klasy sesji, w klasie sesji odpalasz konstruktor klasy auth z POTRZEBYMI DANYMI (czyli $auth=new sessions(...))....W funkcji read klasy sessions używasz tegoż obiektu. W pliku głównym tworzysz obiekt klasy sesji i sprawa załatwiona. Obie klasy mogą być rozpisane w jednym pliku ale nie jest to reguła
pzdrv
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.