Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Fatal error: Using $this when not in object context in
Forum PHP.pl > Forum > Przedszkole
piraciq
Witam serdecznie

trochę naklepałem ale teraz mam problem mianowicie mam kilka klas w których korzystam z OPD nakładki na PDO i nie mam z tym problemów.

połączenie przenoszę sobie za pomocą :
  1. <?php
  2. ...
  3. $db= opdClasscreate($connect);
  4. ...
  5. //nastepnie
  6. $sh= new sessionHandler($db);
  7. //w konstruktorze mam
  8. public function __construct(opdClass $db)
  9.    {
  10.    $this->db=$db;
  11. }
  12. ?>


i jest ladnie pieknie ale chce zrobic cos takiego
mam klase sessionHandler w której sprawdzam czy user jest zalogowany jezeli nie no to go logujemy tak w skrócie
ale tak klasa odpowiedzialna za logowanie usera jest wywolywana wewnacz klasy sessionHandler do ktorej przekazalem połączenie do bazy ale teraz chcial bym je przekazac do klasy odpowiedzialnej za logowanie a tu mi blad wywala :/
Fatal error: Using $this when not in object context in ......../userLogin.php on line 52

  1. <?php
  2. static public function checkPassword($login, $password)
  3.    {
  4.        $stmt = $this->db -> prepare('SELECT user_id AS `id`, user_login AS `login`, user_password AS password`, user_lastvisit AS `lastvisit` FROM users WHERE user_login =&nbsp:login AND user_password =&nbsp:password'); //53 linia
  5.        $stmt -> bindValue(:login', $login, PDOPARAM_STR);
  6.        $stmt -> bindValue(:password', md5($password),PDOPARAM_STR);
  7.        $stmt -> execute();
  8.        $stmt -> setFetchMode(PDOFETCH_CLASS, 'user',    array(0 => false));
  9.        if($user = $stmt -> fetch())
  10.        {
  11.            // Jezeli uzytkownik o takim loginie i hasle
  12.            // istnieje, zwroc jego rekord w postaci obiektu
  13.            $stmt -> closeCursor();
  14.            return $user;
  15.        }
  16.        else
  17.        {
  18.            $stmt -> closeCursor();
  19.            // Bledy w loginie/hasle zglaszamy zerem
  20.            return 0;
  21.        }
  22.    } // end checkPassword();
  23. ?>
nospor
$this mozna uzywac tylko wewnatrz obiektu.
checkPassword() zadaklarowales jako funkcje statyczną ( static ) i ona jest funkcją klasy a nie obiektu. Ona nie posiada $this
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.