За последние 24 часа нас посетили 9362 программиста и 897 роботов. Сейчас ищут 420 программистов ...

Ошибка, ничего не понимаю...

Тема в разделе "PHP для новичков", создана пользователем Fyntik, 7 июл 2021.

Метки:
  1. Fyntik

    Fyntik Новичок

    С нами с:
    5 июн 2020
    Сообщения:
    37
    Симпатии:
    0
    ЕСТЬ ОШИБКА:
    Notice: main(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "RedBeanPHP\OODBBean" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide an autoloader to load the class definition in
    Это при попытке вывести пользователя из $_SESSION['logged_user']->login;
    Скрипт авторизации пользователя:

    Код (Text):
    1. $data = $_POST;
    2.     if ( isset($data['do_login']) )
    3.    {
    4.       $user = R::findOne('users', 'login = ?', array($data['username']));
    5.       if ( $user )
    6.       {
    7.          //логин существует
    8.          if ( password_verify($data['password'], $user->password) )
    9.          {
    10.             //если пароль совпадает, то нужно авторизовать пользователя
    11.             $_SESSION['logged_user'] = $user;
    12.             echo '<div style="color:dreen;">Вы авторизованы!<br/> Можете перейти на <a href="/">главную</a> страницу.</div><hr>';
    13.          }else
    14.          {
    15.             $errors[] = 'Неверно введен пароль!';
    16.          }
    17.  
    18.       }else
    19.       {
    20.          $errors[] = 'Пользователь с таким логином не найден!';
    21.       }
    22.    
    23.       if ( ! empty($errors) )
    24.       {
    25.          //выводим ошибки авторизации
    26.          echo '<div id="errors" style="color:red;">' .array_shift($errors). '</div><hr>';
    27.       }
    28.  
    29.    }
    Если не обновлять страницу то всё ок, но как только её обновить, так всё, везде эта ошибка, что бы я не выводил, логин/баланс/имя/фамилия ему без разницы, сессию я нигде не стираю в коде, я понять не могу какого....
    Помогите пожалуйста!
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.180
    Симпатии:
    1.197
    Адрес:
    Лень
    какая ошибка ? обрубок не считается.
     
  3. Fyntik

    Fyntik Новичок

    С нами с:
    5 июн 2020
    Сообщения:
    37
    Симпатии:
    0
    upload_2021-7-7_19-21-36.png
     
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.425
    Симпатии:
    314
    Положить экземпляр объекта в сессию - не самая простая задача. Вот одна из статей на эту тему: php: Хранение объектов в сессии / Хабр (habr.com). Резюме:
    Если не углубляться, то можете хранить там id пользователя. Тогда, если Id пользователя присутствует в сессии - сможете нормально создать объект класса, подобно тому, как делаете это на основе имени (логина) пользователя.
     
  5. don.bidon

    don.bidon Новичок

    С нами с:
    28 мар 2021
    Сообщения:
    313
    Симпатии:
    49
    -- Постоянно ли храните объекты в сессиях?
    -- Пошёл на ..!