방금 웹 사이트를 마이그레이션했습니다. 하지만 문제가 생겼습니다.
고객이 계정에 로그인 할 수 없습니다. 로그인 페이지에서 로그인을 클릭하면 http://www.mywebsite.com/customer/account/login/ 계정에 로그인해야하지만 동일한 페이지로 리디렉션됩니다.
저는 마 젠토를 처음 접했습니다. 그 문제를 해결하는 방법을 도와주세요?
답변
사용자 정의 템플릿이 있고 1.7에서 작동 했습니까? 1.8.1에서 form_keys가 추가되었으므로 다음 줄에 대한 사용자 지정 템플릿을 확인하십시오.
<?php echo $this->getBlockHtml('formkey'); ?>
누락 된 경우 다음과 같이 추가하십시오.
/app/design/frontend/base/default/template/persistent/customer/form/login.phtml
업데이트 후 다른 모든 양식을 확인하십시오.
https://gist.github.com/drobinson/7913822
답변
http://www.blueclawsearch.co.uk/blog/2013/12/12/fix-customer-cannot-login-to-magento-1-8-1/ 이것은 문제에 대한 해결책입니다
위의 링크는 다음과 같습니다.
-
로 이동
template/customer/form/login.phtml
하고template/persistent/customer/form/login.phtml
세 이하<ul class="form-list">
-
로그인 양식에 다음 코드를 추가하십시오
<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>" />
다른 템플릿에서 로그인 양식을 사용 form_key
하는 경우 다른 부분에도 추가를 사용하십시오 .
답변
/app/Mage/Customer/controllers/AccountController.php 에서이 작업을 수행했습니다.
나는이 변경을하고 그것은 나를 위해 작동하기 시작했다
/**
* Login post action
*/
public function loginPostAction()
{
// generate form_key if missing or invalid
if (!($formKey = $this->getRequest()->getParam('form_key', null))
|| $formKey != Mage::getSingleton('core/session')->getFormKey()) {
$this->getRequest()->setParams(array(
'form_key' =>Mage::getSingleton('core/session')->getFormKey()
));
}