Lỗi - Khóa biểu mẫu không hợp lệ


9

Tôi gặp sự cố với magento 1.9.2.3, một thông báo lỗi xuất hiện khi tôi kết nối với biểu mẫu quản trị viên tùy chỉnh của mình.

Tôi đã tạo một mô-đun và tôi đã nhân đôi trang khách hàng / tài khoản / đăng nhập cho vai trò người dùng của mình.

<?xml version="1.0"?>
<config>
    <modules>
        <Custom_Page>
            <active>true</active>
            <codePool>local</codePool>
        </Custom_Page>
    </modules>
</config>

cấu hình của tôi:

<?xml version="1.0"?>
<config>
    <global>
        <page>
            <layouts>
                <Custom_Page>
                    <label>User Login</label>
                    <template>page/user_login.phtml</template>
                </Custom_Page>
            </layouts>
        </page>
    </global>
</config>

Không có vấn đề với phiên bản magento cũ.

Nhưng với 1.9.2.3: Khóa biểu mẫu không hợp lệ. Vui lòng làm mới trang xuất hiện.

LƯU Ý: Nếu tôi thay thế Observer.php cũ thì đã xong:

www \ app \ code \ core \ Mage \ Admin \ Model \ Observer.php

Nhưng tôi nghĩ việc thay thế Observer.php mới bằng cái cũ không nghiêm trọng.

EDIT: User_login.phtml của tôi chứa một form_key đầu vào.

<form action="/admin" method="post" id="login-form">
    <input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>"/>

Cảm ơn bạn đã giúp đỡ.


bạn đã sử dụng trình duyệt web nào? Hãy thử sử dụng firefox vì tôi cũng gặp phải loại lỗi này trên Chrome.
Fayyaz Khattak

Tôi sử dụng Chrome nhưng đó là cùng một lỗi với tất cả các trình duyệt web (Firefox, IE, Safari).
phpschool

Bạn có thể vui lòng đặt "Tên miền Cookie" từ hệ thống để làm cho điều này chính xác.
Ketan Panchal

Câu trả lời:


27

Tôi đã có cùng một vấn đề và có thể khắc phục bằng cách đặt chính xác

web / cookie / cookie_domain

web / cookie / cookie_path

các giá trị trong bảng core_config_data.

Đừng quên xóa tất cả dữ liệu phiên và cookie trong trình duyệt của bạn và phiên Magento và các tệp / dữ liệu bộ đệm sau đó.


3
Vì vậy, những gì tôi phải thiết lập trong mục này?
Alejandro del Río

các mục xin vui lòng là gì?
Zoya

12

Tôi đã sử dụng các truy vấn này và có thể đăng nhập lại

DELETE FROM core_config_data WHERE path='web/cookie/cookie_domain'; DELETE FROM core_config_data WHERE path='web/cookie/cookie_path';

và vui lòng đảm bảo rằng người dùng máy chủ web có quyền ghi vào bộ lưu trữ phiên. kiểm tra session_save_pathcài đặt nếu bạn lưu phiên vào tập tin. Có vẻ như thế này

<session_save><![CDATA[files]]></session_save> <session_save_path><![CDATA[/tmp/session]]></session_save_path>


cách tốt đẹp mà không cần phpmyadmin, cảm ơn :)
acidjunk

Đẹp! Giải pháp này hiệu quả với tôi!
Marc

5

Kiểm tra cài đặt của bạn cho https. Nếu bạn sử dụng https cho magento của bạn nhưng thử mở trang web bằng http, bạn sẽ gặp vấn đề này.


1
thay đổi cấu hình web / safe / use_in_adminhtml thành 0 trong trường hợp đó
roman204

Cảm ơn bạn, @ roman204, điều đó đã khiến tôi phát điên! Tôi rất chắc chắn rằng cài đặt này chỉ có nghĩa là "sử dụng bất cứ điều gì được xác định trong url cơ sở an toàn" nhưng rõ ràng là không, nó cố gắng thực thi https bất kể. Sau gần một thập kỷ làm việc với điều may mắn, tôi vẫn chưa gặp phải vấn đề này. Magento, món quà cứ tiếp tục trao tặng: D: D
Doug McLean

5

Tôi đã gặp lỗi này sau khi nâng cấp lên php7.0 . chạy doanh nghiệp magento 1.9 . Sau đó tôi đã thử mọi đề nghị ngoài kia. Đây là cách tôi làm cho nó hoạt động:

  1. Tôi đã thêm báo cáo lỗi trong tệp index.php của mình và đã sửa tất cả các lỗi được báo cáo.

  2. Trong bảng MySQL core_config_data, tôi xóa các giá trị cho web/cookie_path web/cookie_httponly. Hãy chắc chắn rằng bạn có web/cookie_domain giá trị đúng với tên miền của bạn (rất quan trọng).

  3. Xóa bộ nhớ cachecookie của trình duyệt của bạn .


4

Các phiên bản mới hơn của Magento yêu cầu các biểu mẫu phải <input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />ngăn chặn các cuộc tấn công CSRF (Cross-Site Request giả mạo).


Có, tôi đã thêm một form_key đầu vào trong biểu mẫu của mình và đây là kết quả tương tự.
phpschool

Bạn có thể xác nhận rằng khóa biểu mẫu đang thực sự được tạo không? (kiểm tra nguồn trang). Vấn đề này xảy ra khi bạn nâng cấp Magento? Từ phiên bản nào?
andyjv

Tôi chắc chắn, khi tôi đi kiểm tra trang nguồn: <input type="hidden" name="form_key" value="Pzty7ZxT6PWRSjhR"/>Với magento 1.7.0.2 thì không sao.
phpschool

3

Tôi đã gặp lỗi tương tự với Magento 1.9.2.3 sau khi sao chép trang web trên máy chủ web cục bộ trên MAMP 3.

Vì vậy, vấn đề giải quyết khi tôi đã thay đổi trong bảng core_config_datacác web/cookie/cookie_domainđể mysite.lanthay cho mysite.lan:8888.


2

Trong trường hợp của tôi, điều này đã hoạt động trên Linux nhưng trên môi trường windows cục bộ của tôi khi sử dụng virtualbox / Docker và windows 10 thì lỗi này là do các quyền lạ mà vb / docker / windows cung cấp cho / var / session /. Trên môi trường phát triển cục bộ của tôi, chỉ có tôi chuyển đường dẫn từ ổ đĩa được ánh xạ sang đường dẫn "thực" trên máy ảo linux

Tôi thêm này vào tập tin cấu hình app/etc/local.xml, sau đó xóa tất cả các file trong var/cachevar/sessionvà có thể đăng nhập OK.

<session_save><![CDATA[files]]></session_save>
<session_save_path><![CDATA[/tmp]]></session_save_path>

2

Trong trường hợp của tôi, tôi đã tạo ra lỗi với các bước này: Tôi đã di chuyển một bản sao magento (dev) trong chính magento : magento / magento-copy Trước đó, chúng nằm cạnh nhau trên máy chủ. Mọi người với chỉ tiêu của riêng mình. Vì vậy, di chuyển một qutoa sang khác -> xảy ra vấn đề. Vì tôi không thể xem bản sao magento bằng FTP Tôi đã thay đổi chủ sở hữu các tệp bằng trình chỉnh sửa tệp. Vì bất kỳ lý do gì điều này tạo ra lỗi.


1

Kiểm tra xem bạn có thể đăng nhập trên https: // yourwebsite / admin thay vì http và kiểm tra core_config_data web / safe / use_in_adminhtml

Tôi đã có vấn đề tương tự và đăng nhập chỉ hoạt động an toàn


1

Tôi thường gặp vấn đề này khi tôi đang làm việc trên một số trang web phát triển và các trang web trực tiếp và có một số nhầm lẫn về cookie. Trước đây tôi đã sửa nó bằng các truy vấn MySQL và xóa các tệp nhưng tôi đã tìm ra một cách gọn gàng hơn để giải quyết vấn đề.

Công cụ magerun cung cấp một cách để kiểm tra các vấn đề với đường dẫn cookie và khắc phục chúng. magerun không phải là một phần của Magento, vì vậy bạn sẽ cần phải cài đặt nó. Nó được mô tả như một con dao quân đội cho magento, vì vậy bạn có thể thấy nó hữu ích cho những thứ khác.

Để tải xuống:

wget https://files.magerun.net/n98-magerun.phar

Sau đó

chmod +x n98-magerun.phar

Sau đó kiểm tra đường dẫn cookie xem có vấn đề gì không ...

./n98-magerun.phar config:get web/cookie/*

Nó sẽ in một bảng. Nhìn vào giá trị cho web/cookie/cookie_domain. Khi tôi gặp vấn đề này, nó không khớp với tên máy chủ phù hợp cho trang web (ví dụ: tôi nhận được dev.example.comthay vì www.example.com).

Để khắc phục, bạn cần đặt lại đường dẫn và xóa bộ đệm, mà magerun có thể giúp với ...

./n98-magerun.phar config:set web/cookie/cookie_domain ""
./n98-magerun.phar cache:flush

Sau đó bạn có thể đăng nhập lại.


0

Vấn đề của tôi là php phiên bản 7.2.

thay đổi phiên bản php của tôi cho 5.6 trong .htaccess

Ứng dụng AddHandler / x-httpd-php56 .php suPHP_ConfigPath / opt / php56 / lib


0

Một cách khác để lỗi này có thể xảy ra cho các module quản trị tự chế là khi frontNametrong của bạn routes.xmlkhông phù hợp với <add action"someFrontName/someAction" />trong của bạn menu.xml. Điều này khiến cho khóa bạn nhìn thấy trong liên kết khi cố gắng mở mô-đun khác với dự kiến.


0

Về câu trả lời được chấp nhận ( https://magento.stackexchange.com/a/102678/6078 ) các mục chính xác là

web / cookie / cookie_domain = url cơ sở của bạn như:

https://website.com/ (without any store code)

web / cookie / cookie_path

thông thường chỉ /nhưng cũng có thể là /[storecode]|trên mỗi cửa hàng

Đối với phát triển cục bộ, nó thường hoạt động để xóa cookie_domainhoặc để trống nhưng có vẻ như Microsoft Edge 80 có vấn đề với điều đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.