Maison >développement back-end >tutoriel php >Comment puis-je envoyer des données via POST vers un site Web externe en utilisant PHP ?

Comment puis-je envoyer des données via POST vers un site Web externe en utilisant PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-27 05:09:031088parcourir

How can I send data via POST to an external website using PHP?

Redirection et envoi de données via POST en PHP

En PHP, vous pouvez rencontrer une situation où vous devez rediriger un utilisateur vers un serveur externe site Web et transmettre des données à ce site Web via POST. Contrairement aux formulaires HTML, PHP ne prend pas en charge ce comportement de manière native.

GET vs. POST

Dans le développement Web, il existe deux méthodes principales pour envoyer des données à partir d'une source. vers une destination :

  • GET : les données sont ajoutées à l'URL en tant que paramètres de requête, visibles dans la barre d'adresse du navigateur.
  • POST : les données sont masquées à l'utilisateur et envoyées dans le corps de la requête.

PHP fournit une méthode simple pour envoyer des données via GET à l'aide de la fonction d'en-tête. Par exemple :

<code class="php">header('Location: http://www.provider.com/process.jsp?id=12345&name=John');</code>

POST avec PHP

Cependant, PHP ne peut pas envoyer directement des données via POST sans s'appuyer sur des bibliothèques externes ou des manipulations du navigateur. Une approche possible consiste à utiliser la bibliothèque cURL pour effectuer des requêtes POST. Cependant, cela nécessite que le code PHP agisse en tant que client, ce qui n'est pas toujours souhaitable.

Une solution alternative consiste à générer dynamiquement un formulaire HTML à l'aide de PHP, à le remplir avec les données requises et à le soumettre via JavaScript. Cette approche vous permet d'exploiter POST sans gérer directement la requête en PHP. Le code suivant illustre ce concept :

<code class="php">// Generate HTML form with hidden fields
$html = '<form action="http://www.provider.com/process.jsp" method="post">';
$html .= '<input type="hidden" name="id" value="12345">';
$html .= '<input type="hidden" name="name" value="John">';
$html .= '<script>document.onload = function() { document.forms[0].submit(); }</script>';</code>

Ce code crée un formulaire HTML qui se soumettra automatiquement à l'URL spécifiée lors du chargement de la page. Bien que cette méthode repose sur la prise en charge du navigateur, elle permet la transmission de données POST depuis PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn