Я использую Hybridauth социальный логин и при проверке подлинности пользователя с Facebook, я получаю следующее сообщение об ошибке:Предупреждение: array_key_exists. Как решить это предупреждение?
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /hybridauth/Hybrid/thirdparty/Facebook/base_facebook.php on line 1328
Моя догадка (вероятно, неправильно), почему это может происходить потому, что параметры, используемые для передачи к Hybridauth поступает из URL-адреса браузера, и у меня есть две страницы - регистр & connected_with = facebook. Hybridauth требует только второго ...
Он фактически аутентифицируется, но я хочу избавиться от этой ошибки. Почему это предупреждение происходит? Есть ли способ скрыть это?
Это немного, что ошибки:
/**
* Get the base domain used for the cookie.
*/
protected function getBaseDomain() {
// The base domain is stored in the metadata cookie if not we fallback
// to the current hostname
$metadata = $this->getMetadataCookie();
if (array_key_exists('base_domain', $metadata) &&
!empty($metadata['base_domain'])) {
return trim($metadata['base_domain'], '.');
}
return $this->getHttpHost();
}
EDIT: извините, это этот код предупреждение исходит от:
/**
* Destroy the current session
*/
public function destroySession() {
$this->accessToken = null;
$this->signedRequest = null;
$this->user = null;
$this->clearAllPersistentData();
// Javascript sets a cookie that will be used in getSignedRequest that we
// need to clear if we can
$cookie_name = $this->getSignedRequestCookieName();
if (array_key_exists($cookie_name, $_COOKIE)) {
unset($_COOKIE[$cookie_name]);
if (!headers_sent()) {
$base_domain = $this->getBaseDomain();
setcookie($cookie_name, '', 1, '/', '.'.$base_domain);
} else {
// @codeCoverageIgnoreStart
self::errorLog(
'There exists a cookie that we wanted to clear that we couldn\'t '.
'clear because headers was already sent. Make sure to do the first '.
'API call before outputing anything.'
);
// @codeCoverageIgnoreEnd
}
}
}
спасибо за помощь, я не совсем понимаю, но есть ли у вас какие-либо идеи, почему он все равно будет аутентифицироваться? было ли это предупреждение для меня проблемой? – gray
спасибо, вы указали мне в правильном направлении .. Я просто взял предложение all if: «if (array_key_exists ($ cookie_name, $ _COOKIE))», так как он также говорит, что нам нужно очистить файл cookie «если мы сможем «... возможно, просто продолжайте и очистите это ... и предупреждение ушло ... может быть, не лучшее решение, но предупреждение ушло – gray