Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
716 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Parser une page HTML avec mot de passe

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Parser une page HTML avec mot de passe

n°1937778
toregua
Posté le 04-11-2009 à 18:20:11  profilanswer
 

Bonjour tout le monde,
 
Je suis en train de créer un script qui me permettrait de récupérer des informations sur un site (qui me l'autorise) mais la page sur laquelle je dois récupérer les informations est protégée par un login et mot de passe!
 
Comment puis tout d'abord me connecter sur cette page pour ensuite la parser avec un file_get_contents !
 
Merci d'avance
 
ps: bien evidemment je possede les login et mot de passe!  
 
j'ai essayé le code suivant mais malheureusement la page s'affiche comme si je n'etais pas authentifié...
 

Code :
  1. <?php
  2. function http_post($url, $data) {
  3.     $serialized_data = http_build_query($data);
  4.     $options = array(
  5.         'https' => array(
  6.             'method' => 'POST',
  7.             'header' => "Content-type: application/x-www-form-urlencoded\r\n" . 'Content-Length: ' . strlen($serialized_data) . "\r\n",
  8.             'content' => $serialized_data
  9.         )
  10.     );
  11.     $contexte = stream_context_create($options);
  12.     return file_get_contents($url, 0, $contexte);
  13. }
  14. $content = http_post('https://www.site.com/Events.do?s=00020914z-redirectDefault', array('username' => 'Vinceee38', 'password' => 'xxxxxxxxx', 'submit' => 'login'));
  15. echo $content;
  16. ?>


 
 
Merci d'avance

mood
Publicité
Posté le 04-11-2009 à 18:20:11  profilanswer
 

n°1937782
flo850
moi je
Posté le 04-11-2009 à 18:37:53  profilanswer
 

regarde plutôt du côté de curl
 
tu ouvres unes session curl
tu envoies ton formulaire d'identification
tu charges ta page protégée


---------------

n°1937792
toregua
Posté le 04-11-2009 à 18:56:11  profilanswer
 

Merci pour ta réponse rapide!  
 
Je viens d'essayer avec curl mais je bloque un peu , ca me renvoie une page blanche encore une fois :(
 

Code :
  1. <?php
  2. $url = 'https://www.site.com/Events.do?s=00020914z-redirectDefault';
  3. $ch = curl_init();
  4. curl_setopt($ch, CURLOPT_URL, $url);
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  6. curl_setopt($ch, CURLOPT_USERPWD, "login:password" );
  7. curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
  8. $output = curl_exec($ch);
  9. $info = curl_getinfo($ch);
  10. curl_close($ch);
  11. echo $output;
  12. ?>


Message édité par toregua le 04-11-2009 à 18:56:35
n°1938781
toregua
Posté le 08-11-2009 à 20:50:12  profilanswer
 

Personne ne peut m'aider ? :(

n°1938791
flo850
moi je
Posté le 08-11-2009 à 21:50:58  profilanswer
 

tu as lu ce que je t'ai proposé ?  
il faut d'abord charger ta page d'identification, en lui envoyant en post login et mot de passe
ensuite , tu charges ta page protégée


---------------

n°1938800
stealth35
Posté le 08-11-2009 à 22:23:27  profilanswer
 

apres tu pourra parser ta page avec DomDocument

n°1938802
toregua
Posté le 08-11-2009 à 22:35:37  profilanswer
 

Salut flo850 et stealth35,
 
Flo850 justement je rencontre des difficultés pour envoyer un post login et mot de passe à ma page...tu pourrais pas m'aider avec du code justement ? merci bcp

n°1938804
flo850
moi je
Posté le 08-11-2009 à 22:39:06  profilanswer
 

demain, je te mets un bout de code que j'ai utilisé


---------------

n°1938806
toregua
Posté le 08-11-2009 à 22:41:46  profilanswer
 

merci bcp c'est trés gentil ! J'attend ton code avec impatience, je pourrais enfin avancer mon projet :)

n°1938921
toregua
Posté le 09-11-2009 à 11:39:19  profilanswer
 

Personne d'autre ne peut m'aider en attendant ?

mood
Publicité
Posté le 09-11-2009 à 11:39:19  profilanswer
 

n°1938924
flo850
moi je
Posté le 09-11-2009 à 11:43:42  profilanswer
 

Code :
  1. $ch = curl_init(AUTHENTIFICATION);
  2.        curl_setopt($ch, CURLOPT_POST, TRUE);
  3.        curl_setopt($ch, CURLOPT_POSTFIELDS,
  4.            array(
  5.                'pseudo' => $_SESSION['sesUser']['login'],
  6.                'pwd' => $_SESSION['sesUser']['motpasse']
  7.            )
  8.        );
  9.        curl_setopt($ch, CURLOPT_URL,'http://monserveur/login.php');
  10.        curl_setopt($ch, CURLOPT_VERBOSE, 1);
  11.        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  12.        curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
  13.  
  14.        curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__). '/cookie.txt');
  15.        curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
  16.        $ret = curl_exec($ch);
  17.  
  18.  
  19.        curl_setopt($ch, CURLOPT_URL, 'http://monserveur/ajax.inc.php');
  20.        curl_setopt($ch, CURLOPT_POST, TRUE);
  21.  
  22.        curl_setopt($ch, CURLOPT_POSTFIELDS,
  23.            array(
  24.                'grpName' => 'Limites operationnelles',
  25.                'reloadGrp' => 'oui'
  26.            )
  27.        );
  28.        $ret = curl_exec($ch);
  29.        curl_setopt($ch, CURLOPT_URL, $url);
  30.        curl_setopt($ch, CURLOPT_POST, FALSE);
  31.  
  32.        $ret = curl_exec($ch);


Message édité par flo850 le 09-11-2009 à 11:43:49

---------------

n°1946706
slagt
Posté le 02-12-2009 à 17:31:25  profilanswer
 

Bonjour,
 
Je suis tombé sur ce message et je dois dire que je suis un peu perdu.
C'est la première fois que j'entend parlé de curl. J'ai bien compris le principe, mais difficile de le mettre en pratique !
 
Mon problème est le même que toregua. Je me suis inscrit sur un site qui met en ligne tout les jours de nouvelles informations. J'aimerais pouvoir me connecter à ce site (identifiant et mot de passe) pour pouvoir récupérer ces informations et les stocker sur mon ordinateur. Je ne peux avoir internet que sur une certaine plage horaire, pendant laquelle je travaille. Le but est de pouvoir lire ces informations même sans internet (mon ordinateur lançant automatiquement le script PHP à une heure précise).
 
J'ai essayé d'adapter le code de flo850, mais ça me permet difficile ! Voilà ce que j'ai fait :

Code :
  1. $ch = curl_init(AUTHENTIFICATION);
  2. curl_setopt($ch, CURLOPT_POST, TRUE);
  3. curl_setopt($ch, CURLOPT_POSTFIELDS, 'login=slagt&pass=*****');
  4. curl_setopt($ch, CURLOPT_URL, 'http://www.*****.com/login');
  5. curl_setopt($ch, CURLOPT_VERBOSE, 1);
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  7. curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
  8.  
  9. $ret = curl_exec($ch);
  10.  
  11. curl_setopt($ch, CURLOPT_URL, 'http://www.*****.com/infos');
  12. curl_setopt($ch, CURLOPT_POST, FALSE);
  13. $ret = curl_exec($ch);
  14.  
  15. echo $ret;
  16.  
  17. curl_close($ch);


 
Et bien sûr, ça ne fonctionne pas. L'echo m'affiche la page que l'on obtient lorsqu'on arrive sur le site en étant déconnecté. Je ne vois pas où se situe mon erreur. Une idée ?

n°1946710
toregua
Posté le 02-12-2009 à 17:45:43  profilanswer
 

Essaye de rajouter cette ligne pour voir :
 

Code :
  1. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; fr; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9');


n°1946715
flo850
moi je
Posté le 02-12-2009 à 17:48:32  profilanswer
 

tu devrai reprendre tout mon code , tu n'as pas repris les cookies  
 
        curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__). '/cookie.txt');
        curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');


---------------

n°1946744
slagt
Posté le 02-12-2009 à 21:24:28  profilanswer
 

Bonjour,
 
Merci pour votre réponse ^^
Maintenant ça... ne fonctionne toujours pas. Mais différemment !
 

Code :
  1. $ch = curl_init(AUTHENTIFICATION);
  2. curl_setopt($ch, CURLOPT_POST, TRUE);
  3. curl_setopt($ch, CURLOPT_POSTFIELDS, 'login=slagt&pass=*****');
  4.  
  5. curl_setopt($ch, CURLOPT_URL, $urlLogin);
  6. curl_setopt($ch, CURLOPT_VERBOSE, 1);
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  8. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  9.  
  10. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
  11. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
  12.  
  13. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; fr; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9');
  14.  
  15. $ret = curl_exec($ch);
  16.  
  17. echo $ret;


 
Cette fois-ci je tombe sur la page du site me disant que le login est invalide. Ce qui est faux bien évidemment. En fait, je pense même que aucun login ni mot de passe n'est transmis. D'habitude, si on fait une erreur de login, on arrive sur cette page mais avec les champs pour retenter de se connecter pré-remplies (avec les login/passe qu'on a envoyé). Or là, ils sont vides !
 
Je ne vois pas bien d'où peut venir le problème.

n°1946745
flo850
moi je
Posté le 02-12-2009 à 21:29:42  profilanswer
 

tu as essayé de fournir les postfields sous forme de tableaux ?


---------------

n°1946747
slagt
Posté le 02-12-2009 à 21:36:12  profilanswer
 

Oui, comme ceci :

Code :
  1. curl_setopt($ch, CURLOPT_POSTFIELDS, array('login' => 'slagt', 'pass' => '*****'));


 
Mais ça ne fonctionne pas mieux :s
 
EDIT : Bien sûr, j'ai vérifié "x" fois que les champs étaient bien nommés "login" et "pass" !


Message édité par slagt le 02-12-2009 à 21:37:15
n°1948658
slagt
Posté le 09-12-2009 à 11:12:57  profilanswer
 

Aucune idée ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Parser une page HTML avec mot de passe

 

Sujets relatifs
Faire un calcul sans rafraichir une page phpMot de passe feuille excel
[php] un include de contenu dans page sans rechargement : possible?comment afficher une page php pour test ?
[RESOLU] Probleme couleur PC et MAC en HTML!! HELP PLZ :)Saisis active sur page web
php, parser des pages qui commencent par <?html / javascript / onclick
[html] Problème sur un formulaire avec plusieurs boutons submit 
Plus de sujets relatifs à : Parser une page HTML avec mot de passe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR