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_ANYindique à 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...).


