Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem w pliku user.class.php
Forum PHP.pl > Forum > Przedszkole
cienki22x
Witam wszystkich,

jestem początkujący jeśli chodzi o PHP i bawię się skryptem od getsoft.

Mam problem muszę zamieścić skrypt na hostingu od 1&1, na wcześniejszym nie miałem tego problemu bynajmniej on się nie wyświetlał na stronie i nie robił problemu z funkcjonowaniem wszystkiego.

Oto błąd:
Cytat
Warning: Creating default object from empty value in /homepages/4/d596758252/htdocs/ogloszenia/classes/user.class.php on line 77

Oto fragment kodu z user.class.php:
  1. if($_SESSION['admin'])
  2. $instance->admin = true;
  3. else
  4. $instance->admin = false;
  5.  
  6. $tpl->assign('checkLoginStatus', true);
  7. $tpl->assign('sessionLogin', $instance->email);
  8. $tpl->assign('sessionLoginId', $instance->id);
  9. $tpl->assign('sessionLoginAdmin', $instance->admin);
  10.  
  11. } else {
  12.  
  13. $User->logged = false; <--- To jest linia 77
  14. $tpl->assign('checkLoginStatus', false);
  15.  
  16. }

Próbowałem wersje PHP 5.6 / 5.5 / 5.4 i nadal jest ten błąd.

Dziękuje z góry za pomoc, pozdrawiam
q.michal
Obstawiam ze $User nie jest obiektem. Nie mialo byc $user?
Kshyhoo
Witamy na Forum. Zapoznaj się z panującymi tu zasadami, żeby uniknąć blokady wątków.
Zmień tytuł wątku na bardziej opisujący problem - na tym forum 99% wątków to problemy ze skryptem...
Przenoszę.
cienki22x
Cytat
Obstawiam ze $User nie jest obiektem. Nie mialo byc $user?




Niestety to nie jest przyczyna tego błędu sad.gif
Pyton_000
Po prostu $User nie jest obiektem, więc PHP automatycznie utworzył sobie obiekt (typu StdClass) i nadał własności "logged" false.

Sprawdź gdzie masz coś w stylu

$User = new ...;

cienki22x
To jest cały kod z tego pliku zerknij jak byś mógł:


Kod
<?php


class User  {

   var $email;
   var $id;
   var $logged;
   var $admin;
  
   public function getInstance(&$tpl) {
  
      static $instance;
      if(!isset($instance)) {
      
         $instance = new User;
        
         // Tworzenie nowych ustawień dla użytkownika (próba logowania)
         if(isset($_POST['email']) && isset($_POST['password'])) {
        
            $userEmail = htmlspecialchars(stripslashes(trim($_POST["email"])), ENT_QUOTES);
            $userPass = htmlspecialchars(stripslashes(trim($_POST["password"])), ENT_QUOTES);
               $userPass = md5($userPass);
            $query = mysql_query("SELECT * FROM users WHERE email='$userEmail' and password='$userPass' and status=2");
            
            if(mysql_num_rows($query) > 0) {
            
                   $result=mysql_fetch_assoc($query);
                   $_SESSION['id']      = $result['id'];
                   $_SESSION['email']   = $result['email'];
                   $_SESSION['admin']   = $result['admin'];
            
            } else
               showMessage('errorLogin');
        
         }
        
         // Pobieranie ustawie� (je�eli istniej�) dla u�ytkownika
         if(!empty($_SESSION['id']) && !empty($_SESSION['email'])) {
            
            $instance->email   = $_SESSION['email'];
            $instance->id      = $_SESSION['id'];
            $instance->logged  = true;
            
            if($_SESSION['admin'])
               $instance->admin = true;
            else
               $instance->admin = false;
              
            $tpl->assign('checkLoginStatus', true);
             $tpl->assign('sessionLogin', $instance->email);
             $tpl->assign('sessionLoginId', $instance->id);
             $tpl->assign('sessionLoginAdmin', $instance->admin);
            
         } else {
            
            $User->logged  = false;
            $tpl->assign('checkLoginStatus', false);
              
         }
        
      }

      return $instance;
      
   }
  
}
Pyton_000
zamień $User na $instance
borabora
ps. jak już budujesz klasę, to nie wrzucaj wszystkiego w jedną metodę
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.