Làm cách nào để sửa khóa mảng không xác định?

Ok, bây giờ tôi đã xóa error_reporting(0); . php và thêm display_errors=Off; . ini của máy chủ của tôi. Tất cả các cảnh báo đã quay trở lại (xem ảnh chụp màn hình đính kèm)

Đối với ma trận tương thích, vâng, tôi có Apache 2. 4. 53, MariaDB 10. 4. 24, PHP8. 0. 19

Lý do duy nhất mà điều này không tạo ra lỗi cho đến thời điểm này là do các cài đặt liên quan đến lỗi của php chưa được đặt thành báo cáo và hiển thị/ghi nhật ký TẤT CẢ các lỗi

Đối với các đầu vào $_GET có thể không tồn tại khi một trang được yêu cầu, bạn cần sử dụng isset() với một số logic có điều kiện, chẳng hạn như toán tử bậc ba hoặc toán tử kết hợp null của php ??, để ngăn lỗi và cũng để gán

Mã được đăng mở ra hai lỗ hổng bảo mật mà tôi đã đề cập. Bằng cách chuyển hướng xung quanh trang web của mình, bạn đang tạo điều kiện cho khách truy cập xem url thay đổi và vì thông báo được hiển thị hoàn toàn được xác định bởi các giá trị trong url, trang web lừa đảo có thể lừa khách truy cập của bạn gửi những thứ như thông tin đăng nhập trên trang web lừa đảo, . Ngoài ra, bằng cách lặp lại văn bản cảnh báo thô trên trang web của bạn, bạn sẵn sàng sử dụng tập lệnh chéo trang

Mã xử lý biểu mẫu và biểu mẫu của bạn phải ở trên cùng một trang. Nếu có lỗi người dùng/xác thực, mã sẽ chỉ tiếp tục hiển thị lại tài liệu html, hiển thị bất kỳ thông báo lỗi nào, hiển thị lại biểu mẫu, điền lại các giá trị trường/tùy chọn/hộp kiểm/trường radio với các giá trị hiện có. Bất kỳ giá trị động nào bạn xuất ra trong ngữ cảnh html đều phải áp dụng htmlentities() cho nó để giúp ngăn chặn tập lệnh chéo trang. Chuyển hướng duy nhất bạn nên có trong mã xử lý biểu mẫu phải là sau khi hoàn tất thành công mã xử lý biểu mẫu và chuyển hướng đó phải đến chính xác cùng một url của trang hiện tại để gây ra yêu cầu nhận cho trang đó. Để hiển thị thông báo thành công một lần, hãy lưu trữ nó trong một biến phiên, sau đó kiểm tra, hiển thị và xóa biến phiên tại vị trí thích hợp trong tài liệu html

Không có gì quan trọng, có lẽ chỉ cần thêm isset() hoặc khai báo một biến hoặc một cái gì đó. Có lẽ bạn có thể xem xét điều này cho một bản cập nhật sắp tới

Đang xem 8 trả lời - 1 đến 8 (trong tổng số 8)

  • Tác giả plugin arnaudbroes

    (@arnaudbroes)

    Xin chào @vespino,

    Cảm ơn bạn đã báo cáo vấn đề này

    Chúng tôi đã có bản sửa lỗi trong bản cập nhật tiếp theo, hiện đang trải qua QA. Nó sẽ được phát hành vào ngày 6 tháng 12 nếu mọi việc suôn sẻ. 🙂

    Trình bắt đầu chủ đề vespino

    (@vespino)

    Xuất sắc. Tôi sẽ xóa nhật ký lỗi PHP của mình cho đến lúc đó

    Trình bắt đầu chủ đề vespino

    (@vespino)

    Chỉ cần có những cảnh báo sau trên phiên bản 4. 2. 8

    [11-Dec-2022 16:54:59 UTC] PHP Warning:  Undefined array key "url" in /public_html/wp-content/plugins/all-in-one-seo-pack/app/Common/Schema/Graphs/WebPage/WebPage.php on line 39
    [11-Dec-2022 16:54:59 UTC] PHP Warning:  Undefined array key "url" in /public_html/wp-content/plugins/all-in-one-seo-pack/app/Common/Schema/Graphs/WebPage/WebPage.php on line 40
    [11-Dec-2022 16:54:59 UTC] PHP Warning:  Undefined array key "description" in /public_html/wp-content/plugins/all-in-one-seo-pack/app/Common/Schema/Graphs/WebPage/WebPage.php on line 42
    [11-Dec-2022 16:54:59 UTC] PHP Warning:  Undefined array key "url" in /public_html/wp-content/plugins/all-in-one-seo-pack/app/Common/Schema/Graphs/WebPage/WebPage.php on line 45

    Trình bắt đầu chủ đề vespino

    (@vespino)

    Bất kỳ tin tức về điều này?

    Hỗ trợ plugin Steve M

    (@wpsmort)

    Xin chào @vespino,

    Điều này đã được sửa trong All in One SEO phiên bản 4. 2. 8. Vui lòng đảm bảo cập nhật lên phiên bản mới nhất và sau đó kiểm tra xem cảnh báo có xuất hiện trở lại không

    Trình bắt đầu chủ đề vespino

    (@vespino)

    Tôi đang dùng phiên bản mới nhất, nhưng những lỗi này vẫn tiếp tục xảy ra

    Hỗ trợ plugin Steve M

    (@wpsmort)

    Xin chào @vespino,

    Bạn có thể liên hệ với chúng tôi qua trang web của chúng tôi để chúng tôi có thể biết thêm thông tin về cấu hình trang web của bạn không

    Trình bắt đầu chủ đề vespino

    (@vespino)

    Bạn đang tìm kiếm thông tin gì mà tôi không thể đăng ở đây?

    Làm cách nào để xử lý không xác định trong PHP?

    Thông báo sửa chữa. Biến không xác định bằng cách sử dụng hàm isset() . Các giải pháp. Để khắc phục loại lỗi này, bạn có thể xác định biến là toàn cục và sử dụng hàm isset() để kiểm tra xem biến đó có được đặt hay không .

    Phím mảng dùng để làm gì?

    array_keys() trả về các khóa, số và chuỗi, từ mảng . Nếu một filter_value được chỉ định, thì chỉ các khóa cho giá trị đó được trả về. Mặt khác, tất cả các khóa từ mảng được trả về.