Je viens de faire une nouvelle installation de Magento 1.9.0.1 et je constate un comportement très étrange avec le formulaire de connexion client.
Dans Chrome (version 36), le formulaire de connexion ne fonctionne pas. Je suis simplement redirigé vers la page de connexion. Il n'y a pas de message d'erreur. Cependant, lorsque j'ouvre une nouvelle fenêtre Incognito, je peux me connecter très bien. Pensant qu'il s'agissait d'un problème de cookie, j'ai effacé tous mes cookies du navigateur et essayé à nouveau et j'ai obtenu les mêmes résultats. Dans les deux cas, je peux me connecter au panneau d'administration sans aucun problème.
J'ai également essayé ceci dans Firefox et Safari. Firefox je verrais la même chose se produire (mais pas systématiquement et je pourrais le réparer en effaçant les cookies) et je ne pouvais pas répliquer dans Safari.
Je n'ai jamais eu de problème avec cela dans aucune autre version de Magento. Existe-t-il un changement fondamental dans la manière dont Magento traite les cookies dans la version 1.9 et / ou est-ce que je peux faire quelque chose pour rendre cela plus stable?
la source
www
par exemple,abc.com
il a ensuite été redirigé verswww.abc.com
. Dans ce cas, le navigateur configurait les cookies pour les deux et les connexions ont spécialement arrêté de fonctionner, mais si je supprime manuellement le cookie qui était sanswww
les connexions, il recommence à fonctionner.Pouvez-vous vérifier si c'est également le cas avec vous?Réponses:
J'ai eu le même problème....
La réponse est que votre thème ne fournit pas une variable appelée
form_key
.Comme indiqué ci-dessus, je dois ajouter:
vous l'ajoutez juste après
<ul class="form-list">
à chacun de mes
login.phtml
fichiers pour le thème.Vous pouvez également avoir des problèmes avec la quantité mise à jour des éléments du panier
Voici l'importance de
form_keys
:Depuis le début des temps, le backend de Magento contenait une clé de formulaire qui protégeait contre les attaques XSS [1]. Avec Magento 1.8, la clé de formulaire est entrée dans l’interface pour la même raison: pour vous protéger contre la soumission de formulaires à partir d’un autre site Web, à l’aide de votre navigateur. un attaquant malveillant peut ajouter des éléments à votre panier lorsque vous vous trouvez dans un autre onglet du navigateur, voire que vous complétez une commande pour vous. Cela dépend d'URL prévisibles, car le site n'aura pas accès au contenu HTML réel dans l'onglet du navigateur où votre commande Magento est en attente. Tous les messages envoyés à la boutique Magento soumettront cependant vos cookies et utiliseront ainsi votre session.
En ajoutant une clé unique à chaque formulaire ou à chaque lien générant une action sur le serveur, l'URL ou le contenu du formulaire ne sont plus prévisibles. La clé de formulaire est stockée dans les données de session et validée lors de sa soumission au serveur. S'ils ne correspondent pas, vous obtenez une erreur de clé de formulaire et l'action n'est pas terminée.
la source
<?php echo $this->getBlockHtml('formkey'); ?>
plutôt qu'une entrée volumineuse.C'est possible:
cookie setting issue in Chrome browser
OU
Magento 1.9 utilise la
form key validation at customer loggin and register
page.Sur
Post action
ce vérifier la forme cléusing function _validateFormKey()
au contrôleurform key issue: form key missing
alors ajoutez ce code dans votre formulaireOU
Cookie domain setting issue
Aller à vérifier le réglage est correct ou nonà
Admin>System>configuration>General>Web>Session Cookie Management
la source
if (!$this->_validateFormKey()) {
renvoie false, ce qui signifie que Magento ne peut pas valider la clé fournie. Toute idée pourquoi cela se produit-il?Comme la question semble être lié cookies, essayez d' augmenter la durée de vie des cookies à 86400 sous
La raison peut être, par défaut, la durée de vie du cookie est définie sur 3600 (1 heure). Mais si le temps de l'ordinateur des utilisateurs finaux est supérieur à celui du serveur, les cookies ne seront pas configurés pour le front-end Magento aussi bien que pour le backend. Par exemple, l'heure de l'utilisateur final sur l'ordinateur est d'une heure inférieure à celle du serveur, ce qui signifie que le cookie (identifiant de session de l'utilisateur titulaire) expirera dès que l'utilisateur se connectera ou tentera d'ajouter un élément.
la source
Pour les futurs lecteurs: Il existe de nombreuses causes possibles à ce problème. Lors de la connexion, certains enregistrements d’exceptions sont supprimés pour des raisons de sécurité. Votre problème n’apparaîtra donc pas.
var/log/exception.log
.Pour diagnostiquer votre problème:
app/code/core/Mage/Customer/controllers/AccountController.php
et allez à laloginPostAction
méthode.Mage::logException($e);
appel et sauvegardez la modificationN'oubliez pas d'annuler les modifications apportées
app/code/core/Mage/Customer/controllers/AccountController.php
!La cause de mon problème était qu'une classe échouait à l'autoload car le module (incorrectement) en avait à la
<codePool>community</codePool>
place<codePool>local</codePool>
.la source
J'ai résolu le problème en ajoutant simplement la ligne de code ci-dessous dans le fichier phtml de connexion persistante.
la source
ok, après une demi-heure de travail, j'ai découvert exactement dans quels dossiers login.phtml je devais changer. Alors allez à
et coller
après
c'est ça.
la source
Si vous utilisez le cache Varnish, le problème peut être différent. Je cite une solution que j'ai trouvée ailleurs. https://github.com/nexcess/magento-turpentine/issues/169
la source
La raison de ce problème est que le formulaire de connexion personnalisé ne contient aucune clé form_key et qu'une validation de clé de formulaire est en cours dans loginPostAction de Magento.
Vous pouvez le réparer comme ci-dessous:
Trouver:
et collez-le juste après le code ci-dessus:
la source
Ce qui précède a parfaitement fonctionné pour moi, mais je passais de Magento 1.4.1 à 1.9.1, ce qui représentait un énorme progrès. Les fichiers ne se trouvaient nulle part à l'emplacement ci-dessus, mais dans le dossier app / design / frontend / BASE.
Ce dossier de base contient beaucoup de fichiers communs depuis Magento 1.4, alors j'ai lu ... Espérons que cela sauvera les nombreuses heures de travail qu'il m'a fallu ..
la source
Si vous utilisez une extension de connexion sociale, ajoutez également une clé de formulaire dans le fichier login.phtm.
la source
Assurez-vous que php-mbstring est installé et activé sur votre serveur.
Si ce n'est pas le cas, la connexion administrateur fonctionnera alors que le client ne le fera pas.
Cette vérification peut être effectuée en examinant la sortie de
phpinfo()
ou en activant temporairement une exception de connexion autour d'une ligne177
dans:app/code/core/Mage/Customer/controllers/AccountController.php
Sachez que cette opération peut révéler le mot de passe du client dans la trace des exceptions consignées.
la source
J'ai eu le même problème et je l'ai résolu en supprimant tous les cookies. Le problème semble se produire si vous avez plusieurs magasins magento différents et que vous vous connectez à eux en même temps.
la source