Authentification HTTP Curl
Htaccess et script PHP CURL
L'authentification HTTP, par htaccess par exemple, peut être résolue par CURL.
Pour cela, 2 options :
- CURLOPT_HTTPAUTH qui sert à indiquer quelle méthode d'authentification utiliser (
CURLAUTH_ANY
indique à CURL de se débrouiller pour la définir lui même) - CURLOPT_USERPWD qui sert à indiquer le nom d'utilisateur et le mot de passe sous la forme
nom_utilisateur:mot_de_passe
<?php $url = 'https://www.oseox.fr'; $timeout = 10; $http_auth_ident = ''; // username:password $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); // Définition de la méthode d'authentification du serveur curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); // Définition des identifiants curl_setopt($ch, CURLOPT_USERPWD, $http_auth_ident); $page_content = curl_exec($ch); curl_close($ch); ?>
Il est important de noter que, si vous affichez le résultat de la page (le HTML résultant est donc interprété par le navigateur), d'autres demandes d'authentification vous seront faites. Celles-ci correspondent en faite aux fichiers externes de la page (images, CSS, Javascripts...).