잘못된 양식 키. 페이지를 새로 고침하십시오. 제품 저장 오류


14

안녕하세요 모두 관리자 패널에 제품을 저장하려고 할 때마다이
오류 " Invalid Form Key. Please refresh the page."가 나타납니다.
나는 링크를 통과 했지만 성공하지 못했습니다.
내 로그 파일을 볼 때이 표시

2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: httponly  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 94
2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: secure  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 96
2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: domain  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 98

기사에서 제안한대로 파일의 행을 주석 처리했습니다 . 그리고 로그 파일의 오류는 사라졌습니다. 그러나 여전히 제품과 "잘못된 양식 키입니다. 페이지를 새로 고치십시오"라는 오류를 저장할 수 없습니다. 그대로입니다.
방화범에서 게시물 데이터를 확인한 결과

form_key    THJDhxajLIZnzrHt
form_key    {{formKey}}

제품을 저장할 때 전달되는 양식 키 변수로. 로컬 컴퓨터에서 확인하면 나에게 표시됩니다.

form_key    prvOwOCGjSKG6DpF
form_key    {{formKey}}
form_key    prvOwOCGjSKG6DpF

이 같은.
누구든지 여기에 무슨 문제가 있는지 알고 있습니까? 여기서는 " form_key"live in pass "의 마지막 값 이" {{formkey}}"인 반면 로컬에서는" prvOwOCGjSKG6DpF" 임을 알 수 있습니다. 도움을 주시면 감사하겠습니다.

답변:


11

이 오류의 원인이 하나 더 cookie_domain있습니다. 구성에 잘못 되었습니다. 관리 영역에 로그인 할 수 없으므로 mysql을 통해 직접 확인할 수 있습니다.

SELECT * FROM core_config_data WHERE path LIKE '%cookie_domain%';

mysql의 값도 직접 변경할 수 있습니다. 나중에 캐시를 지우는 것을 잊지 마십시오.



4

먼저 설치 한 사용자 정의 모듈을 비활성화하고 문제가 지속되는지 확인하십시오.

미디어 업 로더 및 제품 편집 페이지의 다른 부분이 nonce 로 사용하는 form_key 매개 변수와 충돌하는 제품 페이지에 추가 필드를 삽입하는 것 같습니다 .


안녕하세요 Roscius, 제안했듯이 magento js 폴더의 미디어 업로드 파일에 문제가 있어야합니다. js 폴더를 교체했으며 모든 것이 이제 작동합니다.
Jaimin Sutariya

2

아래의 경로와 코드를 확인하십시오. 크롬 로그인 문제에 대해서는 아래 코드를 주석 처리해야합니다.

 app/code/core/Mage/Core/Model/Session/Abstract/Varien.php:87
// session cookie params
$cookieParams = array(
    'lifetime' => $cookie->getLifetime(),
    'path'     => $cookie->getPath(),
    'domain'   => $cookie->getConfigDomain(),
    'secure'   => $cookie->isSecure(),
    'httponly' => $cookie->getHttponly()
);

if (!$cookieParams['httponly']) {
    unset($cookieParams['httponly']);
    if (!$cookieParams['secure']) {
        unset($cookieParams['secure']);
        if (!$cookieParams['domain']) {
            unset($cookieParams['domain']);
        }
    }
}

1

.htaccess 파일을 자세히 살펴보십시오. 1.7.0 Magento 저장소를 다른 서버로 마이그레이션 할 때 이전 서버의 .htaccess 파일을 포함시킨 다음 "잘못된 양식 키. 페이지를 새로 고치십시오"라는 메시지가 화면에 표시되고 구성 변경 사항도 적용되지 않았습니다. 해결책은 새로운 magento를 설치 한 다음 내 저장소 파일을 .htaccess를 제외한 Magento 루트에 복사하는 것입니다. 새로운 설치에서 .htaccess를 사용하면 모든 것이 잘 작동하기 시작합니다. 정확히 어떤 일이 발생하는지 모르겠습니다. 각 서버 구조마다 다르고 특정 .htaccess 항목과 규칙이있을 수 있습니다. 그것은 나에게 작동합니다.


1

문제가 무엇인지 정확히 모르겠지만 Apache 서버 ServerName지시문 의 결과 인 것 같습니다 .

서버에 ServerNameMagento를 설치 한 것과 동일한 전역 서버를 제공했습니다 . 폼 키의 모든 목적 (제 생각에)은 도메인 이름 (XSRF 등)으로 보안과 관련이 있기 때문에 그 이유가 될 수 있습니다.

전 세계 ServerName를 문자 그대로 "example.com"으로 변경했습니다.

그런 다음 원격 서버에서 Magento 캐시와 모든 세션을 지우고 브라우저에서 쿠키를 삭제했습니다.

그리고 지금 작동하고 있습니다.

( max_input_vars이 경우 PHP와는 아무런 관련이 없습니다 . 그래도 오래 전에 그들과 관련하여 다른 문제가있었습니다. 카테고리 제품을 저장할 때 첫 번째 제품 만 max_input_vars저장되고 나머지는 카테고리에 이미 10,000 개의 제품이있을 수 있지만 관리자에 1 개를 더 추가하려고하면 1,000 개로 끝납니다.)


1

이 버그는 php.ini 변수 " max_input_vars " 로 인해 발생 합니다. php 함수 이하로 10000으로 늘리십시오.

ini_set('max_input_vars', 10000);

또는 리눅스 명령 줄 사용하기

cd /etc/php/7.0/apache2/
vi php.ini (Open for edit and set max_input_vars=10000)
:wq(Press esc and write the mentioned command to save and exit)
sudo /etc/init.d/apache2 restart(Restart Server)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.