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:
<?php function read($id) { $db -> sql_query(\"UPDATE sessions SET user_id='\".$auth -> user_id.\"', last_active=UNIX_TIMESTAMP() WHERE id='\".$id.\"'\"); } ?>
i mam klase auth, ktora sprawdza, czy user jest zalogowany, jesli tak, to przypisuje mu range uzytkownika.
skrocony kod:
<?php class auth { var $user_id = 0; function auth() { $sql_use_hea = $db -> sql_query(\"SELECT id, password, rank, language FROM users WHERE login='\".$_SESSION['login'].\"'\"); $row_use_hea = $db -> sql_fetch_array($sql_use_hea); if ($_SESSION['password'] == $row_use_hea['password']) { $this -> user_id = $row_use_hea['id']; } } } ?>
w pliku config.php najpierw tworze obiekt sesji, a pozniej obiekt auth:
<?php include_once('includes/session.class.php'); $session = new session(600); include_once('includes/auth.class.php'); $auth = new auth(); ?>
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.