Google может сканировать мой сайт, но не может ничего индексировать.
Когда я получаю Google на свой веб-сайт, я получаю сообщение об ошибке:
Неустранимая ошибка: вызов функции-члена getcookieshouldbereceived () для необъекта в /var/www/magento/app/code/core/mage/core/controller/varien/action.php в строке 497
Затем я открыл файл action.php, чтобы увидеть, что не так. В файле action.php строка 497 выглядит так:
if ($ session-> getCookieShouldBeReceived ()) {
Абзац, содержащий строку 497:
/ **
* Получить имя метода действия
*
* @param string $ action
* возвращаемая строка
* /
публичная функция getActionMethodName ($ action)
{
вернуть $ action. «Действие»;
}
/**
* Dispatch event before action
*
* @return void
*/
public function preDispatch()
{
if (!$this->getFlag('', self::FLAG_NO_CHECK_INSTALLATION)) {
if (!Mage::isInstalled()) {
$this->setFlag('', self::FLAG_NO_DISPATCH, true);
$this->_redirect('install');
return;
}
}
// Prohibit disabled store actions
if (Mage::isInstalled() && !Mage::app()->getStore()->getIsActive()) {
Mage::app()->throwStoreException();
}
if ($this->_rewrite()) {
return;
}
if (!$this->getFlag('', self::FLAG_NO_START_SESSION)) {
$checkCookie = in_array($this->getRequest()->getActionName(), $this->_cookieCheckActions)
&& !$this->getRequest()->getParam('nocookie', false);
$cookies = Mage::getSingleton('core/cookie')->get();
/** @var $session Mage_Core_Model_Session */
$session = Mage::getSingleton('core/session', array('name' => $this->_sessionNamespace))->start();
if (empty($cookies)) {
if ($session->getCookieShouldBeReceived()) {
$this->setFlag('', self::FLAG_NO_COOKIES_REDIRECT, true);
$session->unsCookieShouldBeReceived();
$session->setSkipSessionIdFlag(true);
} elseif ($checkCookie) {
if (isset($_GET[$session->getSessionIdQueryParam()]) && Mage::app()->getUseSessionInUrl()
&& $this->_sessionNamespace != Mage_Adminhtml_Controller_Action::SESSION_NAMESPACE
) {
$session->setCookieShouldBeReceived(true);
} else {
$this->setFlag('', self::FLAG_NO_COOKIES_REDIRECT, true);
}
}
}
Не могли бы вы помочь мне понять, что не так?
Спасибо !!
У меня была такая же проблема. Я думаю, что когда бот посещает сайт, объект $ session имеет значение NULL, а не реагирует как обычный браузер. Я модифицировал;
if ($session->getCookieShouldBeReceived()) {
в
if (is_object($session) && $session->getCookieShouldBeReceived()) {
и моя проблема решена. Google обычно индексирует мой сайт. Я знаю, это не очень хорошая вещь для изменения основного кода, но я новичок в magento. Кто-нибудь знает, как сделать это изменение без изменения кода ядра?
Других решений пока нет …