2012-06-25 17 views
32

Come posso rilevare il metodo HTTP nella classe di controller CodeIgniter?Come rilevare il metodo HTTP in CodeIgniter

Modificato: C'è un altro modo di utilizzare $_SERVER['REQUEST_METHOD'] in CodeIgniter?

+1

possibile duplicato [PHP rilevare tipo richiesta (GET, POST, PUT o DELETE)] (http://stackoverflow.com/questions/359047/php-detecting-request -type-get-post-put-or-delete) – Esailija

+0

Lo so, ma è vero che usare la variabile '$ _SERVER' in CodeIgniter? –

+0

come si usa qualsiasi altra variabile – Esailija

risposta

52

Grazie a Branden, ho trovato la risposta. $this->input->server($index) è identico a $_SERVER[$index].

Per ottenere il metodo è possibile utilizzare: $this->input->server('REQUEST_METHOD').

UPDATE: (grazie a Ecir Hana)

Come di CodeIgniter 3, utilizzando di method è anche possibile:

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

È possibile rilevare GET e POST utilizzando la libreria di input.

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

Maggiori informazioni possono essere trovate: http://ellislab.com/codeigniter%20/user-guide/libraries/input.html

+6

dai documenti '$ this-> input-> post(); // restituisce tutti gli elementi POST senza filtro XSS ', quindi questo non risponde alla domanda. Come ottiene i dati invece di rilevare il metodo HTTP. –

+1

Non funziona se la richiesta (post per esempio) non contiene dati. – Korri

14

In CodeIgniter 3, è possibile utilizzare il metodo di ... uhm method della classe di input.

Dalla documentazione:

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