Eu instalei o Magento 1.9 . Estava funcionando bem por uma semana. De repente, ontem, quando tentei fazer login no painel de administração do Magento, digitei username
e password
cliquei no botão Login e nada aconteceu. A página é atualizada e é tudo. Nenhum erro ou qualquer outra mensagem.
Se eu inseri um nome de usuário ou senha incorretos, isso mostra erro.
Depois de pesquisar no Google sobre esse problema, fui recomendado para comentar as seguintes linhas:
app \ code \ core \ Mage \ Core \ Model \ Session \ Abstract \ Varien.php
/* to solve login issue */
/*if (!$cookieParams['httponly']) {
unset($cookieParams['httponly']);
if (!$cookieParams['secure']) {
unset($cookieParams['secure']);
if (!$cookieParams['domain']) {
unset($cookieParams['domain']);
}
}
}
if (isset($cookieParams['domain'])) {
$cookieParams['domain'] = $cookie->getDomain();*/ //I have commented these lines
E, para algumas versões anteriores, foi recommentado no mesmo arquivo.
$cookieParams = array(
'lifetime' => $cookie->getLifetime(),
'path' => $cookie->getPath(),
//'domain' => $cookie->getConfigDomain()
//'secure' => $cookie->isSecure(),
//'httponly' => $cookie->getHttponly()
);
}*/
Mesmo depois disso, não consegui entrar no admin. É como era. Alguém enfrentou esse problema? Existe alguma outra solução para esse problema?
(Tentei limpar o cache e a sessão através do ftp).
fonte
app/code/local/Mage/Core..blahblah
para edição, para que o Magento substitua o arquivo principal. Também use git para controle de versão, é uma dádiva de Deus.Respostas:
Pare de modificar o código principal assim - ele pode resolver temporariamente um problema, mas pode criar problemas futuros que serão quase impossíveis de rastrear.
Existem vários problemas diferentes que causam o comportamento de login de administrador sem erros que você está vendo, mas todos eles voltam para o Magento sem poder definir ou ler o cookie da sessão. O Magento usa sessões para passar mensagens de erro entre páginas - é por isso que você não vê uma mensagem de erro. O Magento também usa sessões para armazenar o valor "está logado", portanto, não definir sessões também causa o comportamento principal do erro.
As possíveis causas incluem
Hora local do computador vs. incompatibilidade de hora do servidor, causando invalidação instantânea de cookies. Verifique se o horário do servidor está correto.
Permissões incorretas ativadas
var/session
, impedindo que os arquivos da sessão sejam salvosConfiguração incorreta do banco de dados / redis / outro armazenamento de sessão, impedindo o salvamento dos valores da sessão
Um módulo está instanciando sessões cedo , impedindo que os nomes de sessão corretos sejam definidos
Você é um desenvolvedor que usa vários URLs e tem vários domínios de cookies
Outro desenvolvedor modificou de alguma forma
app\code\core\Mage\Core\Model\Session\Abstract\Varien.php
, criando um bug difícil de rastrearO domínio do cookie
System -> Configuration -> Web -> Session Cookie Management
não corresponde ao domínio do site real.Você está usando o
localhost
domínio como servidor e uma versão do webkit que apresenta problemas / bugs ao definir cookieslocalhost
em algumas situações.A correção de curto prazo é apenas excluir o cookie do domínio. Isso geralmente é suficiente para resolver o problema. Se persistir, descubra qual dos motivos acima é o motivo do seu erro e tome medidas para solucioná-lo (conserte permissões, etc.)
fonte
Estou tendo os mesmos sintomas em algumas instalações do Magento (não apenas no 1.9). No meu caso, isso acontece apenas no Chrome. Estou corrigindo isso fazendo login no Firefox / Safari / Opera e alterando 'Usar apenas HTTP' para 'Não' em 'Gerenciamento de cookies de sessão' nas configurações de 'Web'.
fonte
Use HTTP only
comoNo
sem acesso ao painel de administração. Você pode iniciar diretamente esta consulta SQL: UPDATE__DATABASE_NAME__
.core_config_data
SETvalue
= '0' ONDEcore_config_data
.path
= 'web / cookie / cookie_httponly';Eu tive esse problema também. As sessões acabadas não puderam ser gravadas
var/session
, mesmo que o diretório em si esteja definido0777
. Magento criou arquivos de sessão, mas todos permaneceram zero bytes.Alterar o armazenamento da sessão de
files
paradb
o problema resolvido para mim.fonte
Comente assim:
/*error_reporting(E_ALL | E_STRICT);*/
E use o seguinte código:
error_reporting(E_ALL);
$_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;
Descomente removendo o sinal #, para que fique assim:
ini_set('display_errors', 1);
Salve este arquivo e faça o upload no servidor. Recarregue a página do seu site para ver erros.
fonte
Outro motivo possível: o disco rígido / volume / cota está cheio e, portanto, os dados da sessão não podem ser gravados no disco. Pode parecer improvável, mas aconteceu pela segunda vez comigo e demorou um pouco para descobrir.
Não tenho reputação suficiente para comentar, mas @ Alan Storm, talvez você queira levar isso em sua excelente lista.
fonte
Recentemente, tive o mesmo problema e um truque simples funcionou para mim. Também é para pessoas que não podem acessar o painel no Google Chrome . Se você pode trabalhar no Mozilla Firefox, faça-o porque acho que esse problema não é persistente no Mozilla Firefox.
Portanto, a solução para o chrome é:
Vá para Sistema-> Configuração-> Web . Expanda a guia Inseguro e Seguro . Altere o URL base para
http://127.0.0.1/[Your folder name]
se você estiver usando o host local ou o URL do site através do qual você está acessando o frontend. Eu tive que fazer login duas vezes para acessar o Painel, pois quando inseri os detalhes pela primeira vez, ele é atualizado e volta à mesma página que você mencionou como loop.fonte
Abra o phpMyAdmin no host e tente uma vez este comando sql.
Execute este SQL:
Agora o administrador pode fazer login.
Por favor, siga isto:
A página do administrador mostra 404 páginas não encontradas
fonte
Eu tive o mesmo problema e resolvi-o excluindo todos os arquivos em / var / session. Eu acho que é porque muitas sessões no Magento!
fonte
A Lista de Tempestades de Alarmes está correta e detalhada. Aqui estão alguns casos adicionais.
var/session
máquina host(problemas de montagem)
n98-magerun.phar sys:check
(captura problemas, incluindo o domínio dos cookies)Altere a sessão para o banco de dados editando local.xml. Ele excluirá a maioria dos problemas de permissão usando insidie
<global>
Também pode haver variações de extensões de terceiros (extensões de firewall / segurança), por exemplo, https://github.com/paimpozhil/MageFirewall/blob/master/app/code/community/MageFirewall/Firewall/Model/Observer.php#L53 coloca você na lista negra, se você tentar muitas vezes.
Pode acontecer se sua sessão não estiver funcionando originalmente por problemas de permissão, mas continuar falhando mesmo depois de corrigir o problema original
No seu caso particular, fique de olho no
admin_session_user_login_success
evento, pois a maioria dos módulos de segurança / firewall usa esse evento. Fique de olho especialmente se a variável$_SESSION['admin']
for redefinida pelos observadoresfonte
Também é importante que você tenha uma chave de formulário presente, caso contrário, seu formulário não será processado.
fonte
Uma solução simples para esse problema é usar http://127.0.0.1 como nome do host em vez do host local.
Como o problema é que você não pode efetuar login no seu administrador, altere as URLs base seguras e não seguras na tabela do banco de dados: core_config_data
Isso também validará sua base com o sys do n98-magerun: check
fonte
Se você estiver desenvolvendo
localhost
e tiver definido ou alterado seu nome de domínio paralocalhost
, atualizecore_config_data
os nomes de domínio da tabela do banco de dados para127.0.0.1
. Por exemploUPDATE core_config_data SET value="http://127.0.0.1/magento/" WHERE path="web/unsecure/base_url";
fonte
Além disso, você pode atualizar a senha no banco de dados se tudo o que estiver acima não funcionar e você precisar de acesso desesperado:
substitua as palavras de usuário e senha de acordo com suas necessidades.
fonte
Primeiro, tente limpar o cache, acho que, e se isso não funcionar, tente fazer o chmod 700 na sua pasta var.
fonte
Você pode mudar seu navegador pode ser este trabalho para mim. Quando esse erro ocorre, alterei o chrome do navegador para o firefox e ele está funcionando.
fonte
O mesmo aconteceu comigo há um tempo atrás e meu problema veio da sessão. Eu não tinha espaço em disco suficiente para criar as sessões e o cache
var/
. Tirei algumas coisas e tudo funcionou depois. Talvez isso ajude alguém.Felicidades
fonte
Tente limpar o cache esvaziando as pastas "var / cache" e "var / session", isso resolveu o problema para mim.
Eu também tive que reiniciar o servidor da web depois dele uma vez.
fonte