1093 Stimmen

Erkennung des Anfragetyps in PHP (GET, POST, PUT oder DELETE)

Wie kann ich feststellen, welcher Anforderungstyp (GET, POST, PUT oder DELETE) in PHP verwendet wurde?

1537voto

gnud Punkte 75549

Durch die Verwendung von

$_SERVER['REQUEST_METHOD']

Beispiel

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
     // The request is using the POST method
}

Weitere Einzelheiten finden Sie in der Dokumentation für die Variable $_SERVER .

248voto

neu242 Punkte 15679

REST in PHP kann ziemlich einfach durchgeführt werden. erstellen http://example.com/test.php (siehe unten). Verwenden Sie dies für REST-Aufrufe, z. B. http://example.com/test.php/testing/123/hello . Dies funktioniert mit Apache und Lighttpd sofort, und es werden keine Rewrite-Regeln benötigt.

<?php
$method = $_SERVER['REQUEST_METHOD'];
$request = explode("/", substr(@$_SERVER['PATH_INFO'], 1));

switch ($method) {
  case 'PUT':
    do_something_with_put($request);  
    break;
  case 'POST':
    do_something_with_post($request);  
    break;
  case 'GET':
    do_something_with_get($request);  
    break;
  default:
    handle_error($request);  
    break;
}

31voto

Peter Punkte 8060

Die Erkennung der HTTP-Methode oder der so genannten REQUEST METHOD kann mit dem folgenden Codeschnipsel durchgeführt werden.

$method = $_SERVER['REQUEST_METHOD'];
if ($method == 'POST'){
    // Method is POST
} elseif ($method == 'GET'){
    // Method is GET
} elseif ($method == 'PUT'){
    // Method is PUT
} elseif ($method == 'DELETE'){
    // Method is DELETE
} else {
    // Method unknown
}

Sie könnten auch eine switch wenn Sie dies gegenüber der if-else Erklärung.

Wenn eine andere Methode als GET o POST in einem HTML-Formular erforderlich ist, wird dies häufig durch ein verstecktes Feld im Formular gelöst.

<!-- DELETE method -->
<form action='' method='POST'>
    <input type="hidden" name'_METHOD' value="DELETE">
</form>

<!-- PUT method -->
<form action='' method='POST'>
    <input type="hidden" name'_METHOD' value="PUT">
</form>

Für weitere Informationen zu HTTP-Methoden möchte ich auf die folgende StackOverflow-Frage verweisen:

PUT und DELETE des HTTP-Protokolls und ihre Verwendung in PHP

16voto

HelpNeeder Punkte 6201

Wir können auch die eingabe_filter um die Anfragemethode zu erkennen und gleichzeitig die Sicherheit durch Eingabesanierung zu gewährleisten.

$request = filter_input(INPUT_SERVER, 'REQUEST_METHOD', FILTER_SANITIZE_ENCODED);

15voto

Artegon Punkte 2914

Sie können verwenden getenv Funktion und müssen nicht mit einer $_SERVER variabel:

getenv('REQUEST_METHOD');

Mehr Informationen:

http://php.net/manual/en/function.getenv.php

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X