api — PHP проверяет данные учетной записи пользователя XenForo

Я аутентифицирую пользователя XenForo через php.

Мой код:

public function Auth($username, $password)
{
$userIDA = $this->getarray("SELECT * FROM xf_user WHERE username='".$username."'");

if($userIDA)
{
define('SESSION_BYPASS', false); // if true: logged in user info and sessions are not needed
require_once('library/XenForo/Autoloader.php');

$AutoLoader = XenForo_Autoloader::getInstance();
$AutoLoader->setupAutoloader('library');
XenForo_Application::initialize('library', '');
XenForo_Application::set('page_start_time', microtime(true));
XenForo_Application::disablePhpErrorHandler(); //
XenForo_Session::startPublicSession(); //
error_reporting(E_ALL & ~E_NOTICE); // Turn off the strict error reporting.

$db = XenForo_Application::get('db');
$result = $db->fetchCol('SELECT user_id FROM xf_user WHERE username='.$db->quote($username));
$user_id = $result[0];
$result = $db->fetchCol('SELECT data FROM xf_user_authenticate WHERE user_id='.$db->quote($user_id));
$data = $result[0];

$auth = NULL;

if(class_exists('XenForo_Authentication_Core12'))
$auth = new XenForo_Authentication_Core12;
else if(class_exists('XenForo_Authentication_Core'))
$auth = new XenForo_Authentication_Core;

$auth->setData($data);

if ($auth->authenticate($user_id, $password))
{
switch (intval($user_id))
{
default:
return 1;
break;
case 1:
return -1;
case 3:
return -1;
break;
}
}
return 2;
}
else return 3;
}

журнал ошибок:

[12-Aug-2017 20:08:45 UTC] Неустранимая ошибка PHP: невозможно повторно объявить класс XenForo_Autoloader в /home/*******/*******/library/XenForo/Autoloader.php on line 16

Поэтому, пожалуйста, помогите мне, что не так

2

Решение

Попробуйте вместо этого использовать следующий код:

XenForo_Autoloader :: getInstance () -> setupAutoloader ($ forum_directory. ‘/ Library’);

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]