Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z kolejnością wywoływania klas
wojto
post 23.02.2005, 10:04:11
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 29.06.2003
Skąd: Warszawa

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


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.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
donpablo
post 28.02.2005, 11:27:50
Post #2





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 28.02.2005

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


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
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: 31.07.2025 - 09:50