Phím mẫu Frontend đang được ghi đè


11

Tôi hiện đang gặp sự cố với biểu mẫu lối vào trong đó các phím biểu mẫu bằng cách nào đó bị ghi đè và hiển thị các khóa biểu mẫu không chính xác. Tôi hiện đang gỡ lỗi vấn đề này trên mẫu đăng nhập của khách hàng.

Đây là ảnh chụp nhanh của mã tại login.phtml, mà tôi thiết lập để xem giá trị của formkey là gì.

  <?php
      $retrievedKey =  $block->getBlockHtml('formkey');
      echo $retrievedKey ;
      // i made a breakpoint and inspected $retrievedKey, it returned a html output <input> ... </input> with a form key value of, let's name it 'keyA'.
  ?>

ok bây giờ sau khi tôi tiếp tục thực thi mã, nó kết xuất trang thành công.

Và bây giờ tôi sẽ kiểm tra khóa biểu mẫu ẩn trên trình duyệt chrome của mình, tuy nhiên, nó sẽ in ra một khóa biểu mẫu hoàn toàn khác với ' KeyA '. Hãy đặt tên cho khóa mẫu mới này là ' KeyB '.

Bây giờ tôi thử và đăng nhập, và gửi biểu mẫu. Tôi đã kiểm tra yêu cầu được gửi đi và nó thực sự vượt qua một biến giá trị khóa biểu mẫu phản ánh 'KeyB'.

Tôi đã đặt một số điểm dừng ở chức năng ' xác thực ' của

Magento \ Framework \ Data \ Form \ FormKey \ Trình xác thực


Đây là kiểm tra so sánh của tôi. Theo đúng, $ formKey và $ a phải khớp. Tuy nhiên, nó không.

 $formKey = $request->getParam('form_key', null); // outputs 'KeyB'
 $a = $this->_formKey->getFormKey(); // outputs 'KeyA'


Do đó, việc xác thực không thành công và nó chuyển hướng tôi trở lại trang đăng nhập mà không có thông báo lỗi nào.

Những điều cần lưu ý:

  1. Hành vi này chỉ phát sinh trong chrome và Microsoft EDGE.
  2. Firefox hoạt động tốt, không có ghi đè đang xảy ra
  3. Khóa biểu mẫu được in ra dường như đang thay đổi trên mỗi lần làm mới. $ lấy raKey không làm mới mỗi lần mặc dù

Những điều tôi đã thử:

  1. thiết lập: nâng cấp và thiết lập: tĩnh-nội dung: triển khai
  2. xóa var / cache và var / thế hệ
  3. xóa bộ nhớ cache của trình duyệt và chế độ ẩn danh

Tôi chỉ không thể quay đầu tại sao chìa khóa biểu mẫu bị ghi đè?

Bất kỳ trợ giúp hoặc gợi ý về lý do tại sao điều này đang xảy ra sẽ là tuyệt vời. Cảm ơn vì đã đọc

Cập nhật - Tôi đã thực hiện một số sửa lỗi và tôi đoán rằng trang-cache.js đang gây ra sự cố bằng cách đặt lại khóa biểu mẫu. Điều này là do thực tế là, nó đang kiểm tra cookie của tôi nếu cookie 'form_key' được đặt, nếu không, hãy tạo khóa biểu mẫu mới và lưu vào cookie. Vấn đề là, nó không thể lưu cookie, đó là lý do tại sao nó tiếp tục tạo các khóa biểu mẫu mới.

Cập nhật - Tôi đã giải quyết vấn đề. Điều này là do các vấn đề tên miền cookie. Cảm ơn


Cảm ơn rất nhiều cho tài liệu sửa chữa. Đã dành một chút thời gian để khắc phục sự cố khi thấy hành vi tương tự - khóa biểu mẫu được tạo ra lặp đi lặp lại ở mặt trước
Paras Sood

1
Trong trường hợp của tôi, đó là bộ đệm hệ thống magento, vì nó đã được di chuyển từ một env dàn dựng. Lưu trữ -> Cài đặt -> Cấu hình -> Hệ thống -> Bộ nhớ cache toàn trang -> Ứng dụng bộ đệm: Đặt thành Bộ nhớ cache tích hợp (nếu không chắc chắn liệu véc ni có hoạt động hay không).
Miguel Felipe Guillen Calo

Có cùng một vấn đề và cũng đang xem xét các khóa biểu mẫu trong xác nhận hợp lệ. Bạn nói điều này là do sự cố tên miền cookie, bạn có thể chia sẻ cách bạn khắc phục điều đó không? Cảm ơn
Long MK Nguyễn

Câu trả lời:


0

Đối với trường hợp của tôi, tôi đang sử dụng localhost trong URL để giải pháp sau giúp tôi.

Nếu bạn đang sử dụng localhost trong URL của mình trong máy tính cục bộ, thì hãy thay thế nó bằng IP.

Ý tôi là nếu URL của bạn là

http: // localhost / Magento2 /

thay thế bằng

http://127.0.0.1/Magento2/

Hy vọng nó cũng sẽ hoạt động cho Chrome & Edge và Firefox.

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.