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 :
- CURLOPT_POST pour indiquer à CURL qui nous voulons envoyer une requête de type POST
- 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; ?>