Tôi muốn có một trang trong php thường hiển thị thông tin dựa trên yêu cầu GET được gửi đến nó. Tuy nhiên, tôi muốn nó cũng có thể xử lý các yêu cầu POST nhất định. Vì vậy, làm thế nào tôi có thể nói nếu bất kỳ dữ liệu nào được POST gửi đi để tôi có thể hành động trên nó?Làm cách nào để tôi biết trang php nếu ai đó đến bằng POST hoặc GET?
Trả lời
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ý.
!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
Kiểm tra $_SERVER['REQUEST_METHOD']
. Tài liệu là here.
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
}
Lỗ hổng bảo mật? Thật buồn cười. – moo
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
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. –
Đố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.
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 .
- 1. Làm thế nào để biết nếu yêu cầu HTTP là GET hoặc POST trong hành động Struts 2?
- 2. Làm cách nào để biết liệu ai đó có giả mạo một loại tệp không? (PHP)
- 3. Nhận giá trị GET hoặc POST biến bằng JavaScript?
- 4. Làm thế nào để bạn POST tới một trang bằng cách sử dụng hàm PHP header()?
- 5. Làm cách nào để biết ai đang nhập tôi bằng python?
- 6. is_int và GET hoặc POST
- 7. Làm thế nào để bạn chuyển hướng đến một trang bằng cách sử dụng động từ POST?
- 8. jQuery $ .get hoặc $ .post để bắt lỗi tải trang (ví dụ: 404)
- 9. Cách chuyển từ POST sang GET trong PHP CURL
- 10. Làm cách nào để gửi dữ liệu POST bằng LWP?
- 11. Có ai đó biết cách sử dụng PagerTitleStrip trong Android
- 12. Kiểm tra xem một yêu cầu là GET hoặc POST
- 13. Làm cách nào để chuyển hướng đến trang html và chuyển các biến cho trang đó trong Java?
- 14. Tôi nên làm gì nếu tôi muốn ai đó nhận xét về mã của tôi?
- 15. Làm cách nào để đặt giá trị bằng Súp đẹp trong một số phần tử HTML nếu tôi biết id của yếu tố hoặc lớp đó?
- 16. jQuery ajax() vs get()/post()
- 17. Khi tôi sử dụng các yêu cầu python để kiểm tra một trang web, nếu trang web chuyển hướng tôi đến một trang khác, tôi có biết không?
- 18. Tại sao tôi nên POST dữ liệu thay vì GET?
- 19. làm thế nào tôi biết nếu hủy đăng ký từ trang web Paypal
- 20. Tôi làm cách nào để trả lời một POST trong tập lệnh php?
- 21. iPhone - biết nếu một UIScrollView lên đến đỉnh hoặc đáy
- 22. Làm thế nào tôi có thể chuyển hướng một trang php đến một trang php khác?
- 23. GET và POST trong AJAX?
- 24. Truyền dữ liệu POST từ trang này sang trang khác bằng PHP
- 25. Làm cách nào để gửi dữ liệu đến trang PHP khi nhấp vào một Liên kết?
- 26. Làm cách nào để cache một trang web bằng PHP?
- 27. Làm cách nào để biết trang tôi đang phân tích nó bằng firebug
- 28. Ai đó biết thư viện gửi thư (SMTP) cho Java?
- 29. Cách nhận HttpWebRequest.AllowAutoRedirect để đặt cookie khi thực hiện GET/POST trên trang được chỉnh sửa?
- 30. Làm cách nào để gửi yêu cầu GET từ ứng dụng bình của tôi đến một trang web khác?
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