Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem w pliku user.class.php
cienki22x
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 30.04.2016

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


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

Ten post edytował cienki22x 30.04.2016, 18:44:30
Powód edycji: [Kshyhoo]: bb-code
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
q.michal
post
Post #2





Grupa: Zarejestrowani
Postów: 111
Pomógł: 1
Dołączył: 24.12.2013

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


Obstawiam ze $User nie jest obiektem. Nie mialo byc $user?
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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ę.
Go to the top of the page
+Quote Post
cienki22x
post
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 30.04.2016

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


Cytat
Obstawiam ze $User nie jest obiektem. Nie mialo byc $user?




Niestety to nie jest przyczyna tego błędu (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


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 ...;

Go to the top of the page
+Quote Post
cienki22x
post
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 30.04.2016

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


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;
      
   }
  
}
Go to the top of the page
+Quote Post
Pyton_000
post
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


zamień $User na $instance
Go to the top of the page
+Quote Post
borabora
post
Post #8





Grupa: Zarejestrowani
Postów: 116
Pomógł: 33
Dołączył: 8.09.2014

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


ps. jak już budujesz klasę, to nie wrzucaj wszystkiego w jedną metodę
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 16:46