Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasy i sesje
Forum PHP.pl > Forum > PHP > Object-oriented programming
aradan
Witam.

Mam następujący problem:

Po uruchomieniu następującej sekwencji poleceń:

  1. <?php
  2. echo "<p>".$HTTP_SESSION_VARS['user']." przed</P>";
  3.  $nazwa_uz = $HTTP_SESSION_VARS['user'];
  4.  echo "<p>".$HTTP_SESSION_VARS['user']." przed klasa</P>";
  5.  $user = new osoba($nazwa_uz);
  6.  echo "<p>".$HTTP_SESSION_VARS['user']." po klasie</P>";
  7. ?>


Otrzymuję wynik:

admin przed
admin przed klasa
Object po klasie


Czyli wychodzi na to, że nie wiedzieć czemu $HTTP_SESSION_VARS['user'] staje się obiektem. Co ciekawe wywołanie

  1. <?php
  2. $user = new osoba("admin");/*login wpisany na sztywno*/
  3. ?>


daje taki sam rezultat.

Kod źródłowy klasy osoba jest następujący:

  1. <?php
  2.  
  3. class osoba {
  4.  
  5.  var $imie;
  6.  var $nazwisko;
  7.  var $login;
  8.  var $haslo;
  9.  var $email;
  10.  var $tel;
  11.  var $status;
  12.  var $error;
  13.  
  14.  function osoba($klient) {
  15. $bd = lacz_bd();
  16. if (!$bd) {
  17.  $this->error = "E012";
  18. }
  19. else {
  20.  $query = "select * from users where login='$klient'";
  21.  $wynik = mysql_query($query);
  22.  if (!$wynik) {
  23. $this->error = "E012";
  24.  }
  25.  else {
  26. $wiersz = mysql_fetch_array($wynik);
  27.  
  28. $this->imie  = stripslashes($wiersz['imie']);
  29. $this->nazwisko = stripslashes($wiersz['nazwisko']);
  30. $this->login = stripslashes($wiersz['login']);
  31. $this->haslo = stripslashes($wiersz['haslo']);
  32. $this->email = stripslashes($wiersz['email']);
  33. $this->tel = stripslashes($wiersz['tel']);
  34. $this->status  = stripslashes($wiersz['status']);
  35. $this->error = "FFFF";
  36.  }
  37. }
  38.  }
  39.  
  40. }
  41.  
  42. ?>



Chciałbym zaznaczyć, że w programowaniu obiektowym jestem niestety początkujący, i muszę używać php w wersji 4.x.x

Z góry dziękuję za pomoc.

Pozdrawiam.
Łukasz Będziński.
batman
A jak masz ustawione register_globals? Najwyraźniej zmienna $user jest brana za $HTTP_SESSION_VARS['user']. Zmień $user na $user1 i sprawdź czy zadziała.
dr_bonzo
Jak wyzej. $user i $HTT_..['user' ] to ta sama zmienna. W php4 bylo to jeszcze pomotane i nie pamietam czy dalo sie to skonfigurowac inaczej, uzywac $_SESSION itp.
aradan
Faktycznie, wielkie dzięki. Kombinowałem ze zmianą nazw innych zmiennych, a o obiekcie $user zapomniałem sad.gif .

Dzięki raz jeszcze.
Zamykam temat.

Pozdrawiam.
Łukasz Będziński.
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-2024 Invision Power Services, Inc.