Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Fatal error: Using $this when not in object context in
piraciq
post
Post #1





Grupa: Zarejestrowani
Postów: 174
Pomógł: 4
Dołączył: 27.07.2007
Skąd: Kraków

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


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. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$this mozna uzywac tylko wewnatrz obiektu.
checkPassword() zadaklarowales jako funkcje statyczną ( static ) i ona jest funkcją klasy a nie obiektu. Ona nie posiada $this


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Aktualny czas: 22.08.2025 - 01:07