2009-10-08 29 views

Trả lời

165
$_SERVER['REQUEST_METHOD'] 

Xem the docs. Nó sẽ chứa phương thức yêu cầu trên (ví dụ: 'GET', 'HEAD', 'POST', 'PUT').

9

Trong khi kiểm tra

$_SERVER['REQUEST_METHOD'] 

vẻ như sự lựa chọn hiển nhiên, kể từ khi một số người đang ủng hộ superglobals giải pháp thay thế an toàn (Is using superglobals directly good or bad in PHP? và các câu hỏi tương tự), người ta có thể thực sự sử dụng autosanitizing

filter_input(INPUT_SERVER, 'REQUEST_METHOD') 

(có thể với thay vào đó, một số công tắc lọc bổ sung, ví dụ: FILTER_SANITIZE_SPECIAL_CHARS).

Tất nhiên, trong trường hợp thông thường (GET/POST) không có gì để vệ sinh, nhưng thói quen tốt vẫn là thói quen tốt IMO.

http://php.net/manual/en/reserved.variables.server.php

http://php.net/manual/en/function.filter-input.php

+0

Nếu bạn chỉ muốn biết cho dù đó là 'GET' hoặc 'POST' hoặc tương tự, không lọc là bắt buộc. Tuy nhiên, bạn muốn kiểm tra phương thức và nếu không khớp như mong đợi, bạn có thể dự phòng lỗi "phương thức HTTP không hiểu" (mã HTTP 405). https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#405 –

+0

@AlexisWilke như tôi đã nói, 'trong trường hợp thông thường (GET/POST) không có gì để khử trùng'; OTOH, nếu kết quả (giá trị của biến) là, ví dụ: (và vì bất kỳ lý do gì) được sử dụng thêm, ví dụ: một phần của chuỗi đầu ra hoặc phần thân kịch bản được tạo tự động và (một lần nữa, vì bất kỳ lý do gì) nếu máy chủ web bị lỗi [(và có lỗi trong máy chủ web)] (http://archive.apache.org/gnats/) và dễ bị tiêm một phương thức yêu cầu không hợp lệ, điều này có thể * có khả năng * (mặc dù nó dĩ nhiên là không chắc chắn) [kết quả trong việc thực thi mã tùy ý hoặc tạo dữ liệu] (https://xkcd.com/327/). – vaxquis

Các vấn đề liên quan