Hướng dẫn what is server request method in php? - Phương thức yêu cầu máy chủ trong php là gì?

Một số anh chàng đã gọi một trong những bài nộp Snipplr của tôi là "tào lao" vì tôi đã sử dụng if ($_SERVER['REQUEST_METHOD'] == 'POST') thay vì if ($_POST)

Kiểm tra phương thức yêu cầu có vẻ chính xác hơn với tôi vì đó là điều tôi thực sự muốn làm. Có một số khác biệt hoạt động giữa hai hoặc đây chỉ là vấn đề rõ ràng về mã?

Đã hỏi ngày 3 tháng 1 năm 2009 lúc 16:56Jan 3, 2009 at 16:56

Hướng dẫn what is server request method in php? - Phương thức yêu cầu máy chủ trong php là gì?

8

Chà, họ không làm điều tương tự, thực sự.

$_SERVER['REQUEST_METHOD'] chứa phương thức yêu cầu (bất ngờ).

$_POST chứa bất kỳ dữ liệu bài đăng.

Có thể cho một yêu cầu POST không chứa dữ liệu bài đăng.

Tôi kiểm tra phương thức yêu cầu - Tôi thực sự chưa bao giờ nghĩ về việc kiểm tra mảng $_POST. Tôi kiểm tra các trường bài cần thiết, mặc dù. Vì vậy, một yêu cầu bài viết trống sẽ cung cấp cho người dùng nhiều thông báo lỗi - điều này có ý nghĩa với tôi.

Hướng dẫn what is server request method in php? - Phương thức yêu cầu máy chủ trong php là gì?

Amal Murali

74K18 Huy hiệu vàng126 Huy hiệu bạc145 Huy hiệu Đồng18 gold badges126 silver badges145 bronze badges

Đã trả lời ngày 3 tháng 1 năm 2009 lúc 17:27Jan 3, 2009 at 17:27

Gnudgnudgnud

76.4K5 Huy hiệu vàng62 Huy hiệu bạc78 Huy hiệu đồng5 gold badges62 silver badges78 bronze badges

5

if ($_SERVER['REQUEST_METHOD'] == 'POST') là cách chính xác, bạn có thể gửi yêu cầu bài đăng mà không cần bất kỳ dữ liệu bài đăng nào.

Đã trả lời ngày 3 tháng 1 năm 2009 lúc 17:46Jan 3, 2009 at 17:46

Stuartloxtonstuartloxtonstuartloxton

1.9763 Huy hiệu vàng13 Huy hiệu bạc11 Huy hiệu đồng3 gold badges13 silver badges11 bronze badges

1

Tôi đã từng kiểm tra $_POST cho đến khi tôi gặp rắc rối với dữ liệu bài đăng lớn hơn và các tệp được tải lên. Có các chỉ thị cấu hình

if(!empty($_POST)) {  // if received any post data
   // process $_POST values, 
   // save data to DB,
   // ... 
}

if(!empty($_FILES)) { // if received any "post" files
   // validate uploaded FILES
   // move to uploaded dir
   // ...
}
1 và
if(!empty($_POST)) {  // if received any post data
   // process $_POST values, 
   // save data to DB,
   // ... 
}

if(!empty($_FILES)) { // if received any "post" files
   // validate uploaded FILES
   // move to uploaded dir
   // ...
}
2 - nếu vượt quá, mảng $_POST không được điền.

Vì vậy, "cách an toàn" là kiểm tra $_SERVER['REQUEST_METHOD']. Mặc dù vậy, bạn vẫn phải sử dụng

if(!empty($_POST)) {  // if received any post data
   // process $_POST values, 
   // save data to DB,
   // ... 
}

if(!empty($_FILES)) { // if received any "post" files
   // validate uploaded FILES
   // move to uploaded dir
   // ...
}
5 trên mỗi biến $_POST và không quan trọng, cho dù bạn kiểm tra hay không kiểm tra $_SERVER['REQUEST_METHOD'].

Quentin

877K121 Huy hiệu vàng1175 Huy hiệu bạc1289 Huy hiệu đồng121 gold badges1175 silver badges1289 bronze badges

Đã trả lời ngày 22 tháng 3 năm 2010 lúc 13:15Mar 22, 2010 at 13:15

BinaryLvbinarylvbinaryLV

8.8422 Huy hiệu vàng39 Huy hiệu bạc42 Huy hiệu đồng2 gold badges39 silver badges42 bronze badges

Nếu ứng dụng của bạn cần phản ứng theo yêu cầu của loại bài, hãy sử dụng điều này:

if(strtoupper($_SERVER['REQUEST_METHOD']) === 'POST') { // if form submitted with post method
    // validate request, 
    // manage post request differently, 
    // log or don't log request,
    // redirect to avoid resubmition on F5 etc
}

Nếu ứng dụng của bạn cần phản ứng với bất kỳ dữ liệu nào nhận được thông qua yêu cầu POST, hãy sử dụng điều này:

if(!empty($_POST)) {  // if received any post data
   // process $_POST values, 
   // save data to DB,
   // ... 
}

if(!empty($_FILES)) { // if received any "post" files
   // validate uploaded FILES
   // move to uploaded dir
   // ...
}

Đó là triển khai cụ thể, nhưng bạn sẽ sử dụng cả hai, + $ _files SuperGlobal.

Đã trả lời ngày 11 tháng 6 năm 2013 lúc 23:39Jun 11, 2013 at 23:39

DuzunduzunDUzun

1.64417 Huy hiệu bạc15 Huy hiệu đồng17 silver badges15 bronze badges

Bạn có thể gửi biểu mẫu bằng cách nhấn phím Enter (tức là mà không cần nhấp vào nút Gửi) trong hầu hết các trình duyệt nhưng điều này không nhất thiết phải gửi dưới dạng biến - vì vậy có thể gửi một biểu mẫu trống, tức là $_POST sẽ trống nhưng biểu mẫu sẽ Vẫn đã tạo một yêu cầu bài đăng HTTP đến trang PHP. Trong trường hợp này if ($_SERVER['REQUEST_METHOD'] == 'POST') là tốt hơn.

SRA

23.8K7 Huy hiệu vàng54 Huy hiệu bạc88 Huy hiệu đồng7 gold badges54 silver badges88 bronze badges

Đã trả lời ngày 7 tháng 8 năm 2010 lúc 16:44Aug 7, 2010 at 16:44

EamoneamonEamon

Huy hiệu 411 Đồng1 bronze badge

1

Cả hai đều đúng. Cá nhân tôi thích cách tiếp cận của bạn tốt hơn cho sự câu chuyện của nó nhưng nó thực sự phụ thuộc vào sở thích cá nhân.

Ngoài tay, chạy

if (in_array($_SERVER['REQUEST_METHOD'],array("GET","POST","DELETE"))) {
// do wathever I do 
}
0 sẽ không gây ra lỗi - mảng $_POST tồn tại bất kể yêu cầu được gửi với các tiêu đề
if (in_array($_SERVER['REQUEST_METHOD'],array("GET","POST","DELETE"))) {
// do wathever I do 
}
2. Một mảng trống được đúc thành sai trong kiểm tra boolean.
if (in_array($_SERVER['REQUEST_METHOD'],array("GET","POST","DELETE"))) {
// do wathever I do 
}
0
would not throw an error - the $_POST array exists regardless if the request was sent with
if (in_array($_SERVER['REQUEST_METHOD'],array("GET","POST","DELETE"))) {
// do wathever I do 
}
2 headers. An empty array is cast to false in a boolean check.

Hướng dẫn what is server request method in php? - Phương thức yêu cầu máy chủ trong php là gì?

Đã trả lời ngày 3 tháng 1 năm 2009 lúc 17:08Jan 3, 2009 at 17:08

Hướng dẫn what is server request method in php? - Phương thức yêu cầu máy chủ trong php là gì?

ERAN Galperineran GalperinEran Galperin

85.5K24 Huy hiệu vàng115 Huy hiệu bạc132 Huy hiệu đồng24 gold badges115 silver badges132 bronze badges

2

Miễn là tôi có thể cần truy cập các tập lệnh PHP của mình với nhiều phương thức, điều tôi thực sự là:

if (in_array($_SERVER['REQUEST_METHOD'],array("GET","POST","DELETE"))) {
// do wathever I do 
}

Đã trả lời ngày 5 tháng 10 năm 2019 lúc 23:15Oct 5, 2019 at 23:15

Hướng dẫn what is server request method in php? - Phương thức yêu cầu máy chủ trong php là gì?

$this->method = $_SERVER['REQUEST_METHOD'];
if ($this->method == 'POST' && array_key_exists('HTTP_X_HTTP_METHOD', $_SERVER)) {
    if ($_SERVER['HTTP_X_HTTP_METHOD'] == 'DELETE') {
        $this->method = 'DELETE';
    } else if ($_SERVER['HTTP_X_HTTP_METHOD'] == 'PUT') {
        $this->method = 'PUT';
    } else {
        throw new Exception("Unexpected Header");
    }
}

Quentin

877K121 Huy hiệu vàng1175 Huy hiệu bạc1289 Huy hiệu đồng121 gold badges1175 silver badges1289 bronze badges

Đã trả lời ngày 22 tháng 3 năm 2010 lúc 13:15Feb 27, 2017 at 13:13

1

BinaryLvbinarylv

8.8422 Huy hiệu vàng39 Huy hiệu bạc42 Huy hiệu đồngJan 27, 2014 at 6:33

Nếu ứng dụng của bạn cần phản ứng theo yêu cầu của loại bài, hãy sử dụng điều này:

Nếu ứng dụng của bạn cần phản ứng với bất kỳ dữ liệu nào nhận được thông qua yêu cầu POST, hãy sử dụng điều này:

Đó là triển khai cụ thể, nhưng bạn sẽ sử dụng cả hai, + $ _files SuperGlobal.Jan 3, 2009 at 20:24

Đã trả lời ngày 11 tháng 6 năm 2013 lúc 23:39Alan Storm

Duzunduzun89 gold badges386 silver badges587 bronze badges

1.64417 Huy hiệu bạc15 Huy hiệu đồng

Bạn có thể gửi biểu mẫu bằng cách nhấn phím Enter (tức là mà không cần nhấp vào nút Gửi) trong hầu hết các trình duyệt nhưng điều này không nhất thiết phải gửi dưới dạng biến - vì vậy có thể gửi một biểu mẫu trống, tức là $_POST sẽ trống nhưng biểu mẫu sẽ Vẫn đã tạo một yêu cầu bài đăng HTTP đến trang PHP. Trong trường hợp này if ($_SERVER['REQUEST_METHOD'] == 'POST') là tốt hơn.Jan 3, 2009 at 17:01

2

Phương thức yêu cầu máy chủ là gì?

Phương pháp chỉ định loại yêu cầu được thực hiện cho máy chủ web.Các loại phương thức yêu cầu phổ biến nhất là có được và đăng nhưng có nhiều loại khác, bao gồm đầu, đặt, xóa, kết nối và tùy chọn.Nhận và đăng được hỗ trợ rộng rãi trong khi hỗ trợ cho các phương pháp khác đôi khi bị hạn chế nhưng mở rộng.designates the type of request being made to the web server. The most common types of request methods are GET and POST but there are many others, including HEAD, PUT, DELETE, CONNECT, and OPTIONS. GET and POST are widely supported while support for other methods is sometimes limited but expanding.

Máy chủ $ _ là gì ['request_method'] là gì?

$ _Server ['request_method'] tìm nạp phương thức yêu cầu được sử dụng để truy cập trang.Các phương thức yêu cầu là 'Nhận', 'Head', 'Post', 'đặt'.fetches the request method used to access the page. Request methods are 'GET', 'HEAD', 'POST', 'PUT'.

Máy chủ $ _ là gì ['PHP_elf'] là gì?

$ _Server ['php_elf'] trả về tên tệp của tập lệnh hiện đang thực hiện.Returns the filename of the currently executing script.

Máy chủ $ _ ['Document_root'] là gì?

Document_root trong PHP $ _Server chứa thông tin về thư mục gốc tài liệu mà theo đó tập lệnh hiện tại đang thực thi.Nó có thể truy cập thông qua Biến DOCYITE_ROOT, như được định nghĩa trong tệp cấu hình của máy chủ.Đây là đường dẫn mà mã ứng dụng của bạn được lưu trữ.contains information about the document root directory under which the current script is executing. It is accessible via the variable DOCUMENT_ROOT , as defined in the server's configuration file. This is the path where your application code is stored.