Remplir et valider un formulaire

Comment soumettre un formulaire automatiquement avec CURL et PHP ?

Utilisation de CURL pour simuler l'envoi de formulaire s'avère fort utile dans le cas d'automatisation de certaines tâches. Pour cela, 2 options :

  1. CURLOPT_POST pour indiquer à CURL qui nous voulons envoyer une requête de type POST
  2. CURLOPT_POSTFIELDS pour passer, sous forme de tableau PHP, la liste des champs et de leurs valeurs

Les champs à passer ici sont les champs correspondants au formulaire que l'on souhaite simuler. Les clés du tableau PHP passé à l'option CURLOPT_POSTFIELDS doivent donc correspondre aux attributs name="..." des différents éléments dudit formulaire.

<?php

$url = 'https://www.oseox.fr';
$timeout = 10;

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

if (preg_match('`^https://`i', $url))
{
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Utilisation de la méthode POST
curl_setopt($ch, CURLOPT_POST, true);

// Définition des champs et valeurs à envoyer
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'email' => 'user@domain.tld'
));

$page_content = curl_exec($ch);

curl_close($ch);

echo $page_content;

?>

 

A propos de l'auteur

Antoine Beaumont

Antoine Beaumont est Consultant Web et Développeur. Fort d'une expérience construite au sein de grandes agences Web-marketing, pour tous types de comptes, il accompagne désormais les professionnels dans leurs projets Web, de façon souple et objective.