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

Invité
Invité n'ayant pas de compte PHPfrance

14 avr. 2009, 22:36

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

14 avr. 2009, 23:06

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
Quand tout le reste a échoué, lisez le mode d'emploi...