Không thể đăng nhập: L ERI LRI: Cookies bị chặn hoặc không được trình duyệt của bạn hỗ trợ. Bạn phải kích hoạt cookie để sử dụng WordPress.


14

Sau khi máy chủ di chuyển, tôi không thể đăng nhập vào trang web của mình. Tôi nhận được "LRI: Cookies bị chặn hoặc không được trình duyệt của bạn hỗ trợ. Bạn phải kích hoạt cookie để sử dụng WordPress." lỗi khi tôi thử gửi mẫu đăng nhập.

Tôi khẳng định rằng trình duyệt của tôi hỗ trợ cookie và chúng không bị chặn.

Tôi đã nghiên cứu vấn đề này khá kỹ lưỡng và đã thử mọi đề xuất mà tôi đã tìm thấy:

  • đổi tên thư mục plugin
  • đổi tên thư mục chủ đề trang web
  • đã tìm kiếm cơ sở dữ liệu cho các phiên bản của URL trước đó và thay thế các cơ sở dữ liệu bằng URL mới
  • cập nhật WordPress lên phiên bản mới nhất (4.0)
  • đã xác định WP_HOME và WP_SITEURL trong wp-config.php
  • đặt ADMIN_COOKIE_PATH, COOKIE_DOMAIN, COOKIEPATH và SITECOOKIEPATH trong wp-config.php:

    define('ADMIN_COOKIE_PATH', '/');
    define('COOKIE_DOMAIN', '');
    define('COOKIEPATH', '');
    define('SITECOOKIEPATH', '');
    
  • đã thử bản hack này để wp-login.php: https://wordpress.org/support/topic/cookies-are-blocked-or-not-supported-by-your-browser-1#post-5026171

Tôi có thể đăng nhập vào trang trên cài đặt cục bộ của mình và tôi có thể đăng nhập vào trang trên máy chủ dev của chúng tôi. Bất cứ ý tưởng những gì có thể gây ra điều này?


1
Nhìn vào nguồn HTML của trang đăng nhập. Có bất cứ điều gì trước dòng DOCTYPE ban đầu không? Ngay cả một dòng trống? Nếu vậy, thì bạn có một số đoạn mã tạo đầu ra trước khi các tiêu đề được tạo, trong trường hợp này điều đó ngăn nó đặt cookie.
Otto

1
Điều này là do thực tế là Wordpress thực thi quyền kiểm soát $ safe_cookie đối với kênh được mã hóa cho thông tin đăng nhập của quản trị viên. Cấu hình lại máy chủ web của bạn để thực thi SSL / TLS. KR.

Nếu bạn đang sử dụng WordPress MU, việc thêm tên miền vào danh sách Tên miền trong Cài đặt có thể khắc phục sự cố.
Mahdi Taghizadeh

1
Đây là những gì làm việc cho tôi: Tôi đã thay đổi http thành https (đã thêm 's') và voila. Không có vấn đề cookie nữa.
Tù nhân ngày 13

@MahdiTaghizadeh - Bạn có thể giải thích những gì bạn muốn nói chi tiết hơn không?
Greeso

Câu trả lời:


26

Thêm dòng dưới đây vào wp-config.php của bạn trước / * Thế thôi, dừng chỉnh sửa! ... * /

 define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );

/* That's all, stop editing! Happy blogging. */

1
Giải pháp này cũng làm việc cho tôi khi cài đặt nhiều trang. Tôi đã có thể đăng nhập vào trang web chính nhưng không đăng nhập vào trang phụ.
Được.

@ Be.St., Hãy thửdefine('COOKIE_DOMAIN', '');
Steve

1
Điều này không hoạt động ngay lập tức đối với tôi, nhưng đã làm mới một cách khó khăn (ctrl + f5 bằng chrome)
Dave

4

Đó là Varnish.

Máy chủ web của chúng tôi đã thiết lập Varnish theo cách dành riêng cho Drupal và nó đã lọc ra các cookie mà WordPress sử dụng để xử lý thông tin đăng nhập.


1
Trong trường hợp của tôi, đó là AWS CloudFront đã chặn cookie.
Thần chú

Tôi đã thấy điều này với trang web không bảo mậthttp: // nhưng đối với tôi mọi thứ đều hoạt động khi sử dụng https: //
CrandellWS

1

Tôi đã được googled & thử mọi cách để thoát khỏi vấn đề cookie này. Cuối cùng tôi tìm thấy hai giải pháp, có thể giúp bạn.

Giải pháp 1:

yoursite / wp-login.php

Nhận xét các dòng sau 770-773

if ( isset($_POST['testcookie']) && empty($_COOKIE[TEST_COOKIE]) )
    $user = new WP_Error('test_cookie', __("<strong>ERROR</strong>: Cookies are blocked or not supported by your browser. You must <a href='http://www.google.com/cookies.html'>enable cookies</a> to use WordPress."));
else
    $user = wp_signon('', $secure_cookie);

Nó có thể hoạt động cho một số trang web và một số trang web có thể hiển thị trang trống. Hơn nữa, điều này không được khuyến khích, vì tệp này có thể bị ghi đè sau khi cập nhật wordpress, vì vậy hãy thử giải pháp thứ hai.

Giải pháp 2:

yoursite / wp-content / Themes / yourthemeFolder / tests.php

Đặt mã sau đây.

 setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN);
if ( SITECOOKIEPATH != COOKIEPATH )
    setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN);

Cập nhật chủ đề của bạn cũng có thể làm mất các thay đổi này, vì vậy vui lòng đặt mã này vào một hàm.php khác, nằm trong thư mục chủ đề con trong chủ đề hiện tại của bạn. Hy vọng điều này sẽ giúp bạn.


2
Đây thực sự là những giải pháp. Giống như công việc xung quanh hơn, không lý tưởng để sử dụng điều này vĩnh viễn ...
Jake

-1 cho "Giải pháp" 1 vì chỉnh sửa lõi KHÔNG BAO GIỜ là hành động chính xác. 2 sẽ hoạt động nhưng nó không xác định vấn đề.
Jeremy

1

Gần đây tôi cũng gặp vấn đề này, hóa ra mặc dù tên miền được hướng vào trang web, nhưng multpressite wordpress không có bản ghi trong cơ sở dữ liệu để ánh xạ tên miền vào đúng blog, vì vậy khi wordpress đang cố gắng thiết lập các cookie, nó đã đặt cookie cho tên miền phụ thay vì tên miền được ánh xạ.


Điều này làm việc cho tôi. Tôi đang sử dụng wordpress.org/plugins/wordpress-mu-domain-mapping để lập bản đồ tên miền và ngay khi tôi thêm bản ghi ánh xạ, tôi đã ngừng nhận lỗi "ERROR: Cookies bị chặn hoặc không được trình duyệt của bạn hỗ trợ".
lee_mcmullen

-1

Tôi đã thực hiện giải pháp được đưa ra bởi wpdevramki và nhận thấy rằng vấn đề sau có thể xuất hiện:

"Lưu ý: Hằng số COOKIE_DOMAIN đã được xác định trong /wp-config.php trên dòng 102"

Để giải quyết vấn đề này, vui lòng nhận xét mã sau đây trong wp-gồm / default-contants.php

if ( !defined('COOKIE_DOMAIN') )
    define('COOKIE_DOMAIN', false);

3
KHÔNG SỬA ĐỔI MÃ L CORI!
Jeremy
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.