2012-06-25 9 views
32

¿Cómo puedo detectar el método HTTP en la clase de controlador CodeIgniter?Cómo detectar el método HTTP en CodeIgniter

Editado: ¿Hay alguna otra manera de utilizar $_SERVER['REQUEST_METHOD'] en CodeIgniter?

+1

posible duplicado de [PHP detección de tipo petición (GET, POST, PUT o DELETE)] (http://stackoverflow.com/questions/359047/php-detecting-request -type-get-post-put-or-delete) – Esailija

+0

Lo sé, pero ¿es cierto usar la variable '$ _SERVER' en CodeIgniter? –

+0

como usar cualquier otra variable – Esailija

Respuesta

52

Gracias a Branden, he encontrado la respuesta. $this->input->server($index) es idéntico a $_SERVER[$index].

Para obtener el método, puede utilizar: $this->input->server('REQUEST_METHOD').

ACTUALIZACIÓN: (gracias a Ecir Hana)

A partir de CodeIgniter 3, utilizando de method también es posible:

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

Puede detectar GET y POST utilizando la biblioteca de entrada.

$this->input->post() o $this->input->get()

Más información se puede encontrar: http://ellislab.com/codeigniter%20/user-guide/libraries/input.html

+6

De los documentos '$ this-> input-> post(); // devuelve todos los elementos POST sin filtro XSS', por lo que realmente no responde la pregunta. Como obtiene datos en lugar de detectar el método HTTP. –

+1

No funciona si la solicitud (publicación por ejemplo) no contiene ningún dato. – Korri

14

En CodeIgniter 3, se puede utilizar el método uhm ... method de la clase de entrada.

A partir de los documentos:

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