2008-10-30 36 views

Trả lời

30

Sử dụng $_SERVER['REQUEST_METHOD'] để xác định xem trang của bạn có được truy cập thông qua yêu cầu GET hoặc POST hay không.

Nếu được truy cập qua bài đăng, hãy kiểm tra bất kỳ biến nào trong $_POST để xử lý.

+0

Tuy nhiên, hãy nhớ rằng có nhiều phương thức yêu cầu hơn GET và POST. Vì vậy, không nhìn nếu nó là GET và nếu không giả sử nó POST, kiểm tra nó POST và nếu không giả định nó GET. – Lemming

-1
!empty($_POST) 

Tôi khá chắc chắn rằng bạn có thể truy cập vào một trang thông qua GET và POST, vì vậy đây sẽ là cách an toàn nhất IMO

4

Kiểm tra $_SERVER['REQUEST_METHOD']. Tài liệu là here.

6

Nếu bạn muốn chuyển cùng một biến bằng cả POST và GET thì bạn luôn có thể sử dụng REQUEST chứa tham số từ cả POST và GET. Tuy nhiên, điều này thường được xem là một lỗ hổng bảo mật vì nó có nghĩa là các biến có thể dễ bị giả mạo hơn.

Nếu bạn muốn kiểm tra vào việc yêu cầu được gửi POST hoặc GET sau đó bạn có thể:

if($_SERVER['REQUEST_METHOD'] === 'post') 
{ 
    // Do one thing 
} 
elseif($_SERVER['REQUEST_METHOD'] === 'get') 
{ 
    // Do another thing 
} 

Hoặc:

if(!empty($_POST)) 
{ 
    // Process POST 
} 
elseif(!empty($_GET)) 
{ 
    // Process GET 
} 
+2

Lỗ hổng bảo mật? Thật buồn cười. – moo

+0

Tôi có orandu63, các biến có thể dễ dàng (rất dễ) bị giả mạo cho dù chúng được gửi đến máy chủ bằng POST hoặc GET. – Kibbee

+0

Tôi chỉ đề xuất rằng việc sử dụng REQUEST kém an toàn hơn so với sử dụng POST hoặc GET một cách rõ ràng. Ít bảo mật == Lỗ hổng không cần tồn tại. –

2

Đối với câu hỏi như thế này, thường là về biến môi trường, đây là cách tôi tìm ra chúng:

  • Tạo một foo.php chỉ cần gọi phpinfo();
  • GET foo.php
  • ĐĂNG tới foo.php
  • So sánh đầu ra của phpinfo(); và làm cho lý thuyết của tôi về những gì hành vi này là
  • Xác nhận lý thuyết của tôi chống lại các tài liệu tại php.net

Nó là dễ dàng hơn nhiều hơn nhiều so với cố gắng tìm câu trả lời trong đầm lầy doc php.net của.

0

tôi sử dụng biến $ _REQUEST nếu có một trang và

nó cũng cần phải có khả năng xử lý yêu cầu POST nhất định

http://is.php.net/manual/en/reserved.variables.request.php

Từ hướng dẫn:

Mảng kết hợp theo mặc định chứa nội dung $ _GET, $ _POST và $ _COOKIE .

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