Не удается войти на страницу администратора Magento после перехода на мой localhost


Я просто перемещаю свой магазин Magento в свою локальную среду для тестирования, я также использую Git для поддержки кода, но после того, как я перемещаю все файлы в свою локальную среду, я не могу войти на свою страницу администратора, но я все еще вижу свои страницы интерфейса, и git, база данных, кажется, работает хорошо.

Когда я ввожу неверный пароль администратора на своей странице администратора, он все равно выдает мне "неверный пароль". Но когда я ввожу правильный, он просто обновляет страницу и остается на странице входа, ничего происходит.

Кто-нибудь сталкивался с этой проблемой раньше? Есть какие-нибудь идеи?

Заранее спасибо!

8 2

8 ответов:

Недавно начал использовать Magento для проекта и столкнулся с этой проблемой. Я был разочарован тем фактом, что есть по крайней мере десять или более различных обходных путей, предложенных в сети, и потребовалась куча проб и ошибок, чтобы найти тот, который сделал эту работу. По-видимому, некоторые обходные пути работают для одних версий, а не для других. Никто не объяснил, почему и как возникает проблема, и самые популярные решения включают взлом базы кода или использование другого url, которого не должно быть необходимый.

Самым чистым решением, которое я нашел для Community Edition 1.9.1.1, было редактирование двух значений конфигурации в базе данных:

update core_config_data set value = NULL where path = "web/cookie/cookie_path";
update core_config_data set value = 0 where path = "web/cookie/cookie_httponly";

Путь к файлу cookie по умолчанию равен NULL при новой установке, но он должен быть либо NULL, либо пустой строкой.

Поведение возникает из-за того, что некоторые браузеры, включая Chrome, имеют проблемы с созданием файлов cookie с доменомlocalhost , это означает, что когда Magento вызывает session_start (), файл cookie идентификатора сеанса никогда не создается и в результате информация не может передаваться со страницы на страницу. Процедура входа в систему на самом деле успешна, но следующий запрос не знает об этом, поэтому вы перенаправляетесь обратно на экран входа. Ошибок нет, потому что Magento не учитывает этот крайний случай как возможность.

Если вы не указываете значение домена при создании куки на localhost, то браузер не имеет с этим никаких проблем. К сожалению, просто установка web / cookie/cookie_path в NULL является недостаточно, потому что класс конфигурации Magento разрешает это как пустую строку, которой достаточно, чтобы реальный домен был установлен позже в коде:

if (isset($cookieParams['domain'])) {
    $cookieParams['domain'] = $cookie->getDomain();
}

Этот метод в конечном счете использует текущий хост HTTP для разрешения реального домена для куки, и браузер, следовательно, не хочет иметь с ним ничего общего. Однако если мы отключим web / cookie/cookie_httponly , то Magento не будет выполнять этот дополнительный шаг, $cookieParams ['domain'] не установлен и ни один домен не передается как параметр сеанса, что позволяет создавать куки сеанса и вещи, чтобы функционировать, как они должны.

Обратите внимание, что каждый раз, когда вы изменяете конфигурацию базы данных, вы должны удалить содержимое /var/cache/ для отражения изменений.

Если вы, как и я, не хотите комментировать код или даже вносить изменения в конфигурацию, то я создал расширение, которое переопределяет метод getDomain () , показанный выше, и возвращает null, если мы находимся на localhost, это должно быть несколько больше будущих доказательств и не приводят к сопутствующему ущербу.

Http://www.mediafire.com/download/q39p4k95s5tlght/LocalCookie.zip

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

Следуйте очень полезным ответам, уже опубликованным (резюме):

  1. измените base_url на http://127.0.0.1/ для безопасного и небезопасного пути.
  2. удаление файлов в var / session и var / cache
  3. измените свой Varien.php файл соответственно-в зависимости от вашей версии Magento.

А затем:

  1. наконец, используйте http://127.0.0.1/your/site/folder/name/index.php/admin

Это был недостаток индекса .php / admin (вместо использования http://127.0.0.1/site/admin).

Я надеюсь, что это поможет кому-то еще.

Попробуйте удалить содержимое папки кэша /var / cache. Очистить cookies Вашего браузера и попробуйте. Кроме того, если вы скопировали базу данных с вашего сервера, вам может потребоваться вручную изменить базовые URL-адреса (Безопасные и небезопасные), а также домен cookie в таблице core_config_data. Сделайте это вручную, Если вам нужно. например, web / unsecure/base_url с производственным значением http://www.mywebsite.com/ становится "http://localhost/"

Когда-либо у меня было это, это из-за этого или тайник. Убедитесь, что папка кэша игнорируется в Git hub, если ее еще нет.

1.вам нужно удалить кэш

rm -rf var/cache/* var/session/*

2.измените форму домена core_config_data

update core_config_data set value="http://127.0.0.1/" where path="web/unsecure/base_url";
update core_config_data set value="http://127.0.0.1/" where path="web/secure/base_url";

Выполните следующие действия :
1: пройдите через: xampp\htdocs\magento\app\code\core\Mage\Core\Model\Session\Abstract * *
2: открой * * Вариен.php
файл
3: Сделайте номер строки комментария от 87 до 104 сохраните его и попробуйте войти в систему...

У

Была та же проблема, но исправление изменяло значения БД:

UPDATE `core_config_data` SET `value` = 'http://127.0.0.1/example/' WHERE `path` = 'web/unsecure/base_url';
UPDATE `core_config_data` SET `value` = 'http://127.0.0.1/example/' WHERE `path` = 'web/secure/base_url';

Затем в браузере http://127.0.0.1/example/admin

Та же проблема! Я исправляю свою проблему после удаления / замены статического домена в таблице core_config_data

Web / secure / base_url

Web / secure / base_link_url

Web / secure / base_skin_url

Web / secure / base_media_url

Для меня, запускающего его на IIS (я знаю, официально не поддерживается):

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

127.0.0.1 local.example.com

Затем в IIS добавьте привязку

Local.example.com

На мой сайт, и он работал отлично.

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