PHP检查XenForo用户的帐户数据

时间:2017-08-12 20:18:24

标签: php api xenforo

我正在通过php验证XenForo用户。

我的代码:

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致命错误:无法在/ home / ******* / ******* / library / XenForo / Autoloader中重新声明类XenForo_Autoloader。第16行的PHP

所以,请帮助我,出了什么问题

1 个答案:

答案 0 :(得分:0)

请尝试使用以下代码

XenForo_Autoloader :: getInstance() - > setupAutoloader($ forum_directory。'/ library');