я получаю эту ошибку
Ловкая фатальная ошибка: объект класса __PHP_Incomplete_Class не может быть преобразован в строку в user.php в строке 248, это строка
function loadUser($userID) { global $db; $res = $db->getrow("SELECT * FROM `{$this->dbTable}` WHERE `{$this->tbFields['userID']}` = '".$this->escape($userID)."' LIMIT 1"); if ( !$res ) return false; $this->userData = $res; $this->userID = $userID; $_SESSION[$this->sessionVariable] = $this->userID; return true; }
видеть
var_dump($_SESSION); array(1) { ["user"]=> &object(__PHP_Incomplete_Class)#1 (12) { ["__PHP_Incomplete_Class_Name"]=> string(11) "jooria_user" ["dbTable"]=> string(5) "users" ["sessionVariable"]=> string(4) "user" } }
Этот объект хранится в сеансе? Вы объявили свой класс перед извлечением объекта из сеанса?
В любом случае, я предполагаю, что вы где-то пропустили объявление класса.
EDIT: ваш класс jooria_user
не объявляется перед использованием. Вот почему вы получаете эту ошибку.
Скажите, что у вас есть это:
<?php session_start(); class A {} $a = new A; $_SESSION['A'] = $a;
Затем вы пытаетесь получить к нему доступ в этом скрипте:
<?php session_start(); $a = $_SESSION['A']; var_dump($a); /* outputs: object(__PHP_Incomplete_Class)#1 (1) { ["__PHP_Incomplete_Class_Name"]=> string(1) "A" } */
Теперь, если вы это сделаете:
<?php class A {} // declares the class here session_start(); $a = $_SESSION['A']; var_dump($a); /* outputs: object(A)#1 (1) { } */
Похоже, предоставленный аргумент функции $userID
является объектом, и здесь возникает ошибка:
$this->escape($userID)
(Я не вижу никаких дополнительных операций с строкой, которые могли бы вызвать такую ошибку).
Итак, проверьте, что такое аргумент, с которым вы вызываете loadUser()
.
Сначала я бы удостоверился, что все { }
фигурные скобки имеют пары в нужном месте. A }
отсутствующее в последней строке, было бы моим предположением.