รหัสฟอร์มไม่ถูกต้อง โปรดรีเฟรชหน้านี้ ข้อผิดพลาดในการบันทึกผลิตภัณฑ์


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

ผมแสดงความคิดเห็นออกเส้นในแฟ้มตามที่แนะนำในนี้บทความที่นี่ และข้อผิดพลาดในไฟล์บันทึกก็หายไป แต่ก็ยังไม่สามารถบันทึกผลิตภัณฑ์ของฉันและข้อผิดพลาด "รหัสฟอร์มไม่ถูกต้องโปรดรีเฟรชหน้าเว็บ" เป็นอย่างที่มันเป็น
ฉันตรวจสอบข้อมูลโพสต์ใน firebug และมันแสดงให้ฉันเห็น

form_key    THJDhxajLIZnzrHt
form_key    {{formKey}}

เป็นตัวแปรสำคัญของฟอร์มที่ส่งผ่านเมื่อฉันบันทึกผลิตภัณฑ์ของฉัน เมื่อฉันตรวจสอบในเครื่องท้องถิ่นของฉันมันแสดงให้ฉัน

form_key    prvOwOCGjSKG6DpF
form_key    {{formKey}}
form_key    prvOwOCGjSKG6DpF

อะไรแบบนี้
ไม่มีใครมีความคิดว่ามีอะไรผิดปกติหรือไม่ ที่นี่ฉันจะเห็นว่าค่าสุดท้ายของการform_keyส่งผ่าน "" ในถ่ายทอดสดคือ " {{formkey}}" ในขณะที่ในท้องถิ่นคือ " prvOwOCGjSKG6DpF" ความช่วยเหลือใด ๆ ที่ชื่นชม

คำตอบ:


11

มีอีกหนึ่งแหล่งที่มาสำหรับข้อผิดพลาดนี้: ผิดcookie_domainในการกำหนดค่า เนื่องจากคุณไม่สามารถลงชื่อเข้าใช้ในพื้นที่ผู้ดูแลระบบคุณสามารถตรวจสอบได้โดยตรงผ่าน mysql:

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

คุณสามารถเปลี่ยนค่าใน mysql โดยตรงเช่นกัน อย่าลืมล้างแคชในภายหลัง



4

ก่อนอื่นให้ลองปิดการใช้งานโมดูลที่กำหนดเองใด ๆ ที่คุณติดตั้งไว้และดูว่ายังมีปัญหาอยู่หรือไม่

ดูเหมือนว่าสิ่งที่จะฉีดสนามพิเศษในการไปยังหน้าสินค้าที่มีการชนกับพารามิเตอร์ form_key ซึ่งถูกใช้โดยผู้อัปโหลดและสื่อและชิ้นส่วนอื่น ๆ ของหน้าผลิตภัณฑ์แก้ไขเป็นnonce


สวัสดี 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 ของคุณ เมื่อฉันย้ายที่เก็บ Magento 1.7.0 ของฉันไปยังเซิร์ฟเวอร์อื่นฉันรวมไฟล์. htaccess จากเซิร์ฟเวอร์เก่าแล้วข้อความ: "คีย์ฟอร์มไม่ถูกต้องโปรดรีเฟรชหน้าเว็บ" ปรากฏขึ้นบนหน้าจอและไม่มีอะไรเกิดขึ้นแม้การเปลี่ยนแปลงการกำหนดค่าจะมีผล วิธีแก้ปัญหาคือการติดตั้งวีโอไอพีที่สดใหม่แล้วคัดลอกไฟล์ My Store ลงในรูทวีโอไอพีไม่รวม. htaccess เมื่อฉันใช้. htaccess จากการติดตั้งใหม่ทุกอย่างก็เริ่มทำงานได้ดี ฉันไม่รู้ว่าจะเกิดอะไรขึ้นบางทีโครงสร้างเซิร์ฟเวอร์แต่ละรายการอาจมีรายการและกฎ. htaccess ที่แตกต่างกันและเฉพาะเจาะจง มันใช้งานได้สำหรับฉัน


1

ฉันไม่แน่ใจว่าปัญหานี้เกิดขึ้นจริง แต่ดูเหมือนว่าเป็นผลมาจากServerNameคำสั่งของเซิร์ฟเวอร์ Apache

ฉันให้เซิร์ฟเวอร์ทั่วโลกServerNameเหมือนกับที่ฉันติดตั้ง Magento ของฉัน เนื่องจากวัตถุประสงค์ทั้งหมดของฟอร์มคีย์ (ฉันคิดว่า) เกี่ยวข้องกับความปลอดภัยกับชื่อโดเมน (XSRF เป็นต้น) อาจเป็นเหตุผล

ฉันเปลี่ยนโลกของฉันServerNameเป็น "example.com" อย่างแท้จริง

จากนั้นฉันล้างแคช Magento และเซสชันทั้งหมดในเซิร์ฟเวอร์ระยะไกลและลบคุกกี้ในเบราว์เซอร์ของฉัน

และตอนนี้ก็ใช้งานได้

( max_input_varsในกรณีนี้มันไม่มีส่วนเกี่ยวข้องกับ PHP แต่อย่างใด) ฉันมีปัญหาที่แตกต่างกันเมื่อนานมาแล้วที่เกี่ยวข้องกับพวกเขาแม้ว่าเมื่อบันทึกหมวดหมู่ผลิตภัณฑ์จะมีเพียงmax_input_varsหมายเลขแรกเท่านั้นที่จะได้รับการบันทึก หมวดหมู่ดังนั้นคุณอาจมีผลิตภัณฑ์ 10,000 รายการในหมวดหมู่นี้ แต่เมื่อคุณพยายามเพิ่มอีก 1 รายการในผู้ดูแลระบบและท้ายสุดมี 1,000 รายการเท่านั้น)


1

ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากตัวแปร php.ini " max_input_vars " เพิ่มขึ้นเป็น 10,000 ผ่านฟังก์ชัน php ด้านล่าง:

ini_set('max_input_vars', 10000);

หรือการใช้บรรทัดคำสั่ง linux

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.