Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Forms get a second csrfToken field: two XPath expressions in document.php miss the @

Đang mở Phù hợp với người mới
#586 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
1/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
85/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
php
Lĩnh vực
backend

Hướng nghiên cứu

Trong system/core/document.php, issue xác định hai biểu thức XPath ở dòng 363 và 510. Đọc cách findOneXPath được sử dụng quanh các dòng đó, sau đó kiểm tra đầu ra của biểu mẫu để xác nhận có một token CSRF và một danh sách lỗi sau khi sửa các phép thử thuộc tính. Issue cung cấp các bước tái hiện trong nl/Start/edit; hãy xác minh các trường và danh sách trùng lặp đã biến mất.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Impact: Low Level: Easy Type: Bug Value: Coders

Problem. Every HTMLForm gets a second csrfToken input, and a form may get a second error list, because two XPath expressions in system/core/document.php test a child element instead of an attribute (the @ is missing):

  • line 363: $this->form_element->findOneXPath('input[name=csrfToken]') compares a child element name with a child element csrfToken, so it never finds the existing token and always adds one more;
  • line 510: findOneXPath(".//ul[class='form-errors']") compares a child element class, so it never finds the existing list and adds another one.

Steps to reproduce (fictional test site, main d97ab7b, PHP 8.2). Log in as an administrator and open nl/Start/edit: the page holds name="csrfToken" twice. Both carry the same value, so nothing breaks today, but the form markup is wrong and the second error list can show errors twice.

Proposed fix. input[@name='csrfToken'] and .//ul[@class='form-errors'].

Found while writing known-bug tests for #520.

🤖 Generated with Claude Code

Ngôn ngữ chính
JavaScript
Star
5
Fork
9
Merge trung bình
18 giờ 7 phút
Pull request đã merge (30 ngày)
11

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của PlanBCode/hypha

Tất cả issue của PlanBCode/hypha

Issue tương tự

Thêm issue về JavaScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.