PHP: Alle Post-Variablen von Script abfangen und weiterleiten

Ein PHP-Proxy Script, z.B. für Debugging.

Nehmen wir an, wir haben ein Formular, welches Daten an ein PHP-Script sendet. Das ganze via POST. Für bestimmte Zwecke kann es sinnvoll sein, wenn wir uns dazwischen schalten. Dies würde uns beispielsweise erlauben, die Daten auszuwerten, in eine Datenbank zu speichern und anschließend das ursprüngliche Script aufzurufen.

Das Script

Hier ein Beispiel für ein solches Script:

<?php
// Set the URL of the destination PHP script
$destination_url = "https://example.com/destination_script.php";

// Check if any POST variables were sent
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  // Get all POST variables
  $post_variables = $_POST;

  // Create a new cURL resource
  $curl = curl_init();

  // Set the cURL options
  curl_setopt($curl, CURLOPT_URL, $destination_url);
  curl_setopt($curl, CURLOPT_POST, true);
  curl_setopt($curl, CURLOPT_POSTFIELDS, $post_variables);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

  // Execute the cURL request
  $response = curl_exec($curl);

  // Close the cURL resource
  curl_close($curl);

  // Output the response from the destination script
  echo $response;
} else {
  // No POST variables were sent, output an error message
  echo "Error: No POST variables were sent.";
}
?>

Funktionsweise und Verwendung

In diesem Skript wird zunächst die URL des Ziel-PHP-Skripts festgelegt. Dann wird mit $_SERVER[“REQUEST_METHOD”] geprüft, ob POST-Variablen gesendet wurden. Wenn dies der Fall ist, wird “POST” angegeben. Wenn POST-Variablen gesendet wurden, verwenden wir cURL, um eine POST-Anfrage an das Zielskript zu senden, wobei die Option CURLOPT_POSTFIELDS auf das Array $post_variables gesetzt wird, das alle POST-Variablen enthält. Außerdem setzen wir CURLOPT_RETURNTRANSFER auf true, um die Antwort des Zielskripts zurückzugeben. Schließlich geben wir die Antwort des Zielskripts aus.

Beachten Sie, dass Sie die cURL-Optionen je nach den spezifischen Anforderungen Ihrer Anwendung möglicherweise ändern müssen.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert