Page 1 sur 1

récupérer code source apres une page d'authentification

Posté : 14 avr. 2009, 22:36
par Invité
Bonjour,
Je dois récupérer le code source d'une page https qui est protégée par login et mot de passe. J'ai bien les identifiants mais je ne sais pas comment faire avec php pour loguer la page identifiant et mot de passe automatiquement pour arriver a la page qui m'intéresse et récuperer le code source pour travailler sur des variables. J'ai trouvé ce code la via la commande stream_context_create. Mais je suis perdu (authentification header etc.. ??)la si qqn a la solution. Ca serait génial ca fait 3 jours que je suis dessus sans résultat. Si qqn qui gère pouvait me donner un coup de main je suis pret a le dédommager...
Je récapitule :
Etape 1 : Page d'authentification
Etape 2 : Page https qui s'affiche apres authentification (c'est la page ou je dois récupérer le code source)

Code trouvé :

Code : Tout sélectionner

<?php $url = 'http://www.monsite.com/mapage.php'; $nom = 'nom'; $pass = 'password'; $auth = base64_encode("$nom:$pass") . "\r\n"; $header = "Authorization: Basic $auth"; $opts = array( 'http' => array ( 'method' => 'GET', 'header' => $header ) ); $context = stream_context_create($opts); $http_page = file_get_contents($url,false,$context); $http_result = 0; $http_header = ''; if (($http_page != FALSE) && (isset($http_response_header))) { $nLines = count( $http_response_header ); for ( $i = $nLines-1; $i >= 0; $i-- ) { $line = $http_response_header[$i]; $http_header .= $line . "\n"; if ( strncasecmp( "HTTP", $line, 4 ) == 0 ) { $response = explode( ' ', $line ); $http_result = $response[1]; } } } if ($http_result != 0) echo "<pre>$http_page\n\n$http_header\n\n$http_result</pre>"; ?>
Sur ce code la je ne sais pas quoi paramétrer

Merci d'avance

Posté : 14 avr. 2009, 23:06
par @rthur
Bonjour,

La solution la plus simple est d'utiliser cURL qui est justement fait pour ton cas:
http://fr.php.net/curl

La prise en main au début n'est pas évidente mais cURL est redoutablement efficace quand on le maitrise bien. Je t'encourage notamment à t'inspirer des commentaires de la doc qui sont bien souvent pertinent. Par exemple: http://fr.php.net/manual/fr/function.cu ... .php#80442