2012-06-25 5 views
32

Wie kann ich die HTTP-Methode in der CodeIgniter-Controller-Klasse erkennen?So erkennen Sie die HTTP-Methode in CodeIgniter

Edited: Gibt es eine andere Art und Weise als $_SERVER['REQUEST_METHOD'] in CodeIgniter mit?

+1

möglich Duplikat [PHP Anforderungstyp Erkennung (GET, POST, PUT oder DELETE)] (http://stackoverflow.com/questions/359047/php-detecting-request -type-get-post-put-or-delete) – Esailija

+0

Ich weiß das, aber ist es wahr, Variable '$ _SERVER' in CodeIgniter zu verwenden? –

+0

wie Sie eine andere Variable verwenden – Esailija

Antwort

52

Dank Branden, ich habe die Antwort gefunden. $this->input->server($index) ist identisch mit $_SERVER[$index].

Um Methode zu erhalten, können Sie verwenden: $this->input->server('REQUEST_METHOD').

UPDATE: (dank Ecir Hana)

Ab CodeIgniter 3 ist die Verwendung von method auch möglich:

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

Sie können GET und POST mithilfe der Input-Bibliothek erkennen.

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

Weitere Informationen finden Sie hier: http://ellislab.com/codeigniter%20/user-guide/libraries/input.html

+6

Aus der Dokumentation '$ this-> input-> post(); // gibt alle POST-Elemente ohne XSS-Filter zurück, so dass dies die Frage nicht wirklich beantwortet. Wie es Daten erhält, anstatt die HTTP-Methode zu erkennen. –

+1

Funktioniert nicht, wenn die Anfrage (zum Beispiel) keine Daten enthält. – Korri

14

In CodeIgniter 3 können Sie die method verwenden uhm ... Methode der Eingabeklasse

Aus der Dokumentation:

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