在我的项目中,我使用乌塞克作为用户管理模块。这是我的第一个PHP项目,我还在学习。我设置了数据库和usercake项目,但是我一直收到这个错误-
注意:尝试在第170行的C:\wamp\www\userCake\models\funcs.user.php中获取非对象的属性。 注意:尝试在第172行的C:\wamp\www\userCake\models\funcs.user.php中获取非对象的属性。
只有当没有用户登录到系统时,才会捕获此错误。有一次,用户登录我不再收到这个错误。负责的代码是-
function isUserLoggedIn()
{
global $loggedInUser,$db,$db_table_prefix;
$sql = "SELECT User_ID,
Password
FROM ".$db_table_prefix."Users
WHERE
User_ID = '".$db->sql_escape($loggedInUser->user_id)."' //line 170
AND
Password = '".$db->sql_escape($loggedInUser->hash_pw)."' // line 172
AND
Active = 1
LIMIT 1";
$sql = mysql_num_rows($sql);
if($loggedInUser == NULL)
{
return false;
}
else
{
//Query the database to ensure they haven't been removed or possibly banned?
if(returns_result($sql) > 0)
{
return true;
}
else
{
//No result returned kill the user session, user banned or deleted
$loggedInUser->userLogOut();
return false;
}
}
}我试着用我有限的php知识来修复这个问题,但是没有做到。我猜此错误类似于对象引用,而不是设置为.net中对象的实例。我说的对吗?如果没有,是什么导致了这个错误?
我怎么才能解决这个问题?
发布于 2010-11-20 10:00:20
我想,当用户第一次没有登录时,引用是空的,所以在第170行中,$db->sql_escape($loggedInUser->user_id).导致了类似于空引用的情况。尝试移动
if($loggedInUser == NULL) { return false; }
在代码的开头,如果用户为null,则停止取消引用。
发布于 2010-11-27 06:34:01
function isUserLoggedIn() {
global $loggedInUser, $db, $db_table_prefix;
if ($loggedInUser == NULL) { return false; }
else {
$sql = "SELECT User_ID,
Password
FROM " . $db_table_prefix . "Users
WHERE
User_ID = '" . $db->sql_escape($loggedInUser->user_id) . "'
AND
Password = '" . $db->sql_escape($loggedInUser->hash_pw) . "'
AND
Active = 1
LIMIT 1";
//Query the database to ensure they haven't been removed or possibly banned?
if (returns_result($sql) > 0) { return true; }
else {
//No result returned kill the user session, user banned or deleted
$loggedInUser->userLogOut();
return false;
}
}
}用这个替换这个函数。在检查$loggedInUser是否为null之前,不应该设置sql语句。
发布于 2011-06-14 07:47:49
我也有同样的问题,
似乎我有自己的数据库连接,在之后启动了userCake连接,这显然超过了userCake连接,使得sql_escape无法实现。
尝试禁用userCake包含后的任何数据库连接。
顺便说一句,在session_start包含之前,您还应该删除任何userCake ()。这将导致会话中的__php_incomplete_class错误。
https://stackoverflow.com/questions/4232133
复制相似问题