2012-06-25 18 views
32

Làm cách nào để phát hiện phương thức HTTP trong lớp bộ điều khiển CodeIgniter?Cách phát hiện phương thức HTTP trong CodeIgniter

Đã chỉnh sửa: Có cách nào khác ngoài việc sử dụng $_SERVER['REQUEST_METHOD'] trong CodeIgniter không?

+1

thể trùng lặp của [PHP phát hiện loại yêu cầu (GET, POST, PUT hoặc DELETE)] (http://stackoverflow.com/questions/359047/php-detecting-request -type-get-post-put-or-delete) – Esailija

+0

Tôi biết điều đó, nhưng có đúng là sử dụng biến '$ _SERVER' trong CodeIgniter không? –

+0

giống như bạn sử dụng bất kỳ biến nào khác – Esailija

Trả lời

52

Nhờ Branden, tôi đã tìm thấy câu trả lời. $this->input->server($index) giống hệt với $_SERVER[$index].

Để có phương pháp bạn có thể sử dụng: $this->input->server('REQUEST_METHOD').

UPDATE: (nhờ Ecir Hana)

Tính đến CodeIgniter 3, sử dụng của method cũng có thể:

echo $this->input->method(TRUE); // Outputs: POST 
echo $this->input->method(FALSE); // Outputs: post 
echo $this->input->method(); // Outputs: post 
4

Bạn có thể phát hiện GET và POST bằng cách sử dụng thư viện Nhập liệu.

$this->input->post() hoặc $this->input->get()

thông tin có thể tìm thêm: http://ellislab.com/codeigniter%20/user-guide/libraries/input.html

+6

Từ tài liệu '$ this-> input-> post(); // trả về tất cả các mục POST không có bộ lọc XSS' để điều này không thực sự trả lời câu hỏi. Vì nó nhận dữ liệu thay vì phát hiện phương thức HTTP. –

+1

Không hoạt động nếu yêu cầu (bài đăng chẳng hạn) không chứa bất kỳ dữ liệu nào. – Korri

14

Trong CodeIgniter 3, bạn có thể sử dụng method uhm ... phương pháp của lớp đầu vào.

Từ các tài liệu:

echo $this->input->method(TRUE); // Outputs: POST 
echo $this->input->method(FALSE); // Outputs: post 
echo $this->input->method(); // Outputs: post