Неустранимая ошибка: класс «Hybrid_Logger» не найден в /hybridauth/Hybrid/Endpoint.php в строке 165

Я пытаюсь развернуть HyBridAuth в качестве плагина на моем сайте. моя функция выглядит примерно так.

function authenticatewith( $provider ){
ini_set('display_errors','on');

//includes

$config   = dirname(__FILE__) . '/hybridauth-2.1.2/hybridauth/config.php';
require_once( "hybridauth-2.1.2/hybridauth/Hybrid/Auth.php" );

$provider_name = $provider;

//$config = $this->getconfig($id);
try{
// initialize Hybrid_Auth with a given file
$hybridauth = new Hybrid_Auth( $config );

// try to authenticate with the selected provider
$adapter = $hybridauth->authenticate( $provider_name );

// then grab the user profile
$user_profile = $adapter->getUserProfile();
}
catch( Exception $e ){
echo "Error: please try again!";
echo "Original error message: " . $e->getMessage();
}

echo "USer Details: ";
var_dump($user_profile);

}

Я сталкиваюсь с фатальной ошибкой при попытке доступа к любому провайдеру.

Fatal error: Class 'Hybrid_Logger' not found in hybridauth/Hybrid/Endpoint.php on line 165

Я не получаю ссылки на эту проблему в стеке, хотя я подниму это здесь.

Спасибо & С уважением

2

Решение

Прежде чем делать что-либо еще, убедитесь, что вы используете session_start ().

Так как использование session_start () вызовет ошибку уровня E_NOTICE, если сессия уже была начата, лучшим подходом будет:

if(session_id() == '') {
session_start();
}

И имейте в виду, что если в браузере пользователя не включены файлы cookie, у вас будут проблемы с HybridAuth из-за значения по умолчанию для параметра PHP session.use_cookies

session.use_cookies = 1 //PHP uses cookies by default

Бета-пользователь проекта, над которым я работаю, сообщил, что видел эту ошибку, и долгое время я не мог ее воспроизвести. После долгих часов отладки это была ошибка конфигурации браузера, специфичная для пользователя (куки были отключены). Не уверен, что это решит вашу проблему, но стоит упомянуть, что ошибка:

Fatal error: Class 'Hybrid_Logger' not found in hybridauth/Hybrid/Endpoint.php

Также может быть вызвано из-за настроек браузера (например, отключенных файлов cookie).

Рекомендации:

http://php.net/manual/en/function.session-start.php

http://php.net/manual/en/session.security.php

3

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

Эта ошибка возникает, если вы не можете получить доступ к config.php, или если base_url неверен, или если вы пытаетесь получить доступ к удаленной службе приложений (facebook или другой) с локального хоста … Затем вы должны использовать живой домен, работающий в Интернете, чтобы Для этого вам нужно добавить следующую строку в ваши windows / system32 / drivers / etc / hosts, если вы находитесь под windows, и / etc / hosts, если вы находитесь в системе на основе Unix:

127.0.0.1 your-domaine.extension

где расширение является одним из следующих: com, net или что-либо еще, что может работать

этот метод применяется, если у вас нет рабочего домена для вашего приложения
в противном случае вам нужно указать свой домен www для правильной работы …

надеюсь, это полезно

1

У меня была точно такая же ошибка, я обнаружил, что глобальная переменная сеанса не имеет требуемых значений («CONFIG»), и это потому, что я установил base_url, отличный от того, который я тестировал. Чтобы быть более конкретным: я заходил на сайт www.mywebsite.com, а base_url был установлен как mywebsite.com. Исправили это, установив base_url на www.mywebsite.com.
Я также рекомендую перенаправить на www, как это: .htaccess — как заставить "WWW." в общем?

1

require_once( "hybridauth-2.1.2/hybridauth/Hybrid/Auth.php" );

не содержит полного пути, как в случае включения файла config.php.

0

Используйте session_start ();
прежде чем делать что-то еще ..

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