PHP, cURL : Passer à travers le SSL et les cookies
16/01/2010Lorsque l’on veut s’affranchir d’une application imposée par une école/institution/entreprise, il faut souvent passer à travers du SSL. Pire encore, il y a des cookies et des variables à récupérer un peu partout (à la manière de pac-man ?). Heuresement, cURL est là ! Combiné à PHP, on peut facilement arriver à ses fins.
~
$url = "https://www.mapage.fr"; $usecookie = "cookies.txt"; // un fichier contenant les cookies $ch = curl_init(); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSLVERSION, 3); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_COOKIEJAR, $usecookie); curl_setopt($ch, CURLOPT_COOKIEFILE, $usecookie); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $retour = curl_exec($ch); // $retour contient la page // Les potentielles erreurs sont visibles via cette fonction : // curl_error($ch); curl_close($ch);
Maintenant que nous sommes sur cette page, sans doute voulons nous passer des arguments. Et puis, comme on ne pense jamais à nous, ils sont passés en POST.
// A rajouter avec les autres options curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, "arg1=var1&arg2=var2");