![](/img/trans.png)
[英]Getting Error on Joomla: Failed to Read Session Data and Application Instantiation Error
[英]Joomla JAuthentication giving Application Instantiation error
我有一个可以验证joomla用户password的api。 尽管它在Joomla 2.5中可以完美运行,但在Joomla 3.5中却出现了“应用程序实例化”错误。 代码部分如下:
函数checkAuthentication($ username,$ password){
jimport( 'joomla.user.authentication');
$auth = & JAuthentication::getInstance();
$credentials = array( 'username' => $username, 'password' => $password );
$options = array();
$response = $auth->authenticate($credentials, $options);
if ($response->status != JAUTHENTICATE_STATUS_SUCCESS)
{
echo "Failure";
}
else
{
echo "Success~" . $username;
}
}
在$ auth =&JAuthentication :: getInstance();行失败。
我已经在配置文件中检查了所有的配置,如数据库设置等。 有人可以帮我找出原因。
下面的代码应该可以解决问题-它是Joomla身份验证插件(插件/身份验证/joomla/joomla.php)的修改版本。
$query = $db->getQuery(true);
$query->select(array('id, 'password'));
$query->from('#__users');
$query->where($db->quoteName('username') . ' = ' . $db->quote($username));
$db->setQuery($query);
$result = $db->loadObject();
/*
* This block supports Joomla 3.2 upwards
*/
if ($result)
{
$match = JUserHelper::verifyPassword($password, $result->password, $result->id);
if ($match === true)
{
$user = JUser::getInstance($result->id);
$response->email = $user->email;
$response->fullname = $user->name;
if (JFactory::getApplication()->isAdmin())
{
$response->language = $user->getParam('admin_language');
}
else
{
$response->language = $user->getParam('language');
}
$response->status = JAuthentication::STATUS_SUCCESS;
$response->error_message = '';
}
else
{
// Invalid password
$response->status = JAuthentication::STATUS_FAILURE;
$response->error_message = JText::_('JGLOBAL_AUTH_INVALID_PASS');
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.