enregistrer source d'une page externe après traitement

enregistrer source d'une page externe après traitement - PHP - Programmation

Marsh Posté le 25-04-2012 à 11:40:58    

Bonjour,
J'ai une petite question en PHP.
J'aimerais récupérer des infos sur une page distante (de statistiques) en PHP.
 
J'ai d'abord créer en local un formulaire avec le même variables que le site distant.
Du coup lors de mon submit (vers la page internet), la page distante est bien initialisée,  
et apparaît avec toutes les statistiques générées.
J'aimerais maintenant récupérer ces stats dans un fichier pour les travailler.
 
En gros j'aimerais récupérer le code source de la page générée mais après traitement.
Pensez-vous que ce soit possible ?
 
merci d'avance.
Cordialement

Reply

Marsh Posté le 25-04-2012 à 11:40:58   

Reply

Marsh Posté le 25-04-2012 à 11:50:26    

oui , avec curl par exemple :

 

tu recupère, en local les données de ton formulaire local
en php, tu construit une requete bien formée pour le  formulaire distant,tu la soumets e tu récupère les résultats

 

A noter que si le formulaire est en GET tu peux utilise file_get_content a la place de curl

 

Par contre, attention à ce que le site distant l'accepte.

Message cité 1 fois
Message édité par flo850 le 25-04-2012 à 11:51:10

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

Reply

Marsh Posté le 25-04-2012 à 12:14:52    

flo850 a écrit :

oui , avec curl par exemple :
 
tu recupère, en local les données de ton formulaire local
en php, tu construit une requete bien formée pour le  formulaire distant,tu la soumets e tu récupère les résultats
 
A noter que si le formulaire est en GET tu peux utilise file_get_content a la place de curl  
 
Par contre, attention à ce que le site distant l'accepte.


 
Dans mon formulaire local, mon submit envoie mes variables initialisées vers le site distant.
Comme ceci
<form name="StatistiquesIndexForm" method="post" action="http://XXX.fr/statistiques" >
 <!-- mes champs a initialiser -->
 <input type="submit" name="allerA_b" value="Go TO Stats">
</form>
En cliquant sur mon bouton "Go TO Stats" c'est le site distant qui apparait.
 
Donc si je comprends bien, je dois faire un submit sur une autre page en local par exemple:
<form name="StatistiquesIndexForm" method="post" action="http://localhost/chezMoi.php" >
 
avec chezMoi.php qui récupère les valeurs de mon formulaire ?
 
En faite je sais pas comment soumettre ma requête au niveau du formulaire distant.
En effet quand je vais directement sur l'url, et que je complete manuellement mes champs afin de l'envoyer,
aucun argument ne passe d'une url a l'autre du genre: http://XXX.fr/statistiques?var1=lapin&var2=malin
 

Reply

Marsh Posté le 25-04-2012 à 14:15:53    

oui , c'est ça  
 
donc le formulaire est en  POST  ( les variabels ne sont pas transmises dans l'url )


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

Reply

Marsh Posté le 09-05-2012 à 12:10:37    

flo850 a écrit :

oui , c'est ça  
 
donc le formulaire est en  POST  ( les variabels ne sont pas transmises dans l'url )


 
Ok super effectivement ça fonctionne.
C'est vraiment nickel CURL.
 
Par contre si CURL est désactivé sur le site distant, y a t'il une autre possibilité pour récupérer le code source  
de la page distante après résultat ? ou c'est mort ?
 
merci
 

Reply

Marsh Posté le 09-05-2012 à 12:30:55    

non : CURL simule une vraie requete post, donc il n'y a pas besoin de CURL sur le site distant, uniquement sur ton serveur  
 
 
 


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

Reply

Marsh Posté le 10-05-2012 à 11:08:37    

flo850 a écrit :

non : CURL simule une vraie requete post, donc il n'y a pas besoin de CURL sur le site distant, uniquement sur ton serveur  
 
 
 


Ok merci pour ta réponse.
 
Pour les formulaire GET, la manip fonctionne aussi ? ou il suffit de coller les arguments directement dans l'url ?
merci

Reply

Marsh Posté le 10-05-2012 à 11:10:29    

les deux en fait
ca fonctionne avec curl et avec l'url


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

Reply

Marsh Posté le 10-05-2012 à 11:52:24    

On peut aussi utiliser des libs de plus au niveau qui simulent un navigateur web basique. Pour PHP, y'a Snoopy et SimpleTest.
 
Ils sont très pratiques à utiliser ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-05-2012 à 10:03:54    

rufo a écrit :

On peut aussi utiliser des libs de plus au niveau qui simulent un navigateur web basique. Pour PHP, y'a Snoopy et SimpleTest.
 
Ils sont très pratiques à utiliser ;)


 
Merci, je vais tester ça aujourd'hui.

Reply

Marsh Posté le 14-05-2012 à 10:03:54   

Reply

Marsh Posté le 04-07-2012 à 07:52:54    

Bonjour,
Je récidive avec curl !!!!
 
Nouveau projet, et donc nouveau problème :)
 
Résumé de la situation:
J'ai un site en https://mon-site:port/page1.do et https://mon-site:port/page2.do
 
J'ai crée en local un formulaire "POST" avec 2 dates. J'envoie mes 2 dates sur le site distant (page2.do).  
Jusque la tout va bien: la page du site distant est bien initialisée en fonction de mes paramètres.
 
Le problème est que le site possède une identification (certificat SSL 3 128b)
et quand je récupère le code dans mon fichier, je n'arrive que a récupérer le code de page1.do (partie authentification) et non de page2.do (page initialisée avec mes résultats).
 
La 1ere chose que j'ai faite à été de créer un certificat d'authentification avec openssl que j'ai mis dans c:\aa.pem. Puis dans mon code (j'ai un peu tout essayé) j'initialise CURL avec:
 
 
 

Code :
  1. $date1="29/06/2012";
  2. $date2="02/07/2012";
  3. $monSite="https://monSite:7560/page1.do"
  4. $ch = curl_init();
  5. curl_setopt ($ch, CURLOPT_POSTFIELDS, "maDate1=$date1&maDate2=$date2" );
  6. curl_setopt ($ch, CURLOPT_URL, $monSite);
  7. //curl_setopt ($ch, CURLOPT_PORT, 7650); //test avec le site https://monSite/page1.do
  8. curl_setopt ($ch, CURLOPT_VERBOSE, true);
  9. curl_setopt($ch, CURLOPT_SSLVERSION, 3);
  10. curl_setopt ($ch, CURLOPT_HEADER, 0);
  11. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
  12. curl_setopt ($ch, CURLOPT_CAINFO, "c:\aa.pem" ); //a l'air de fonctionner car sans mon certificat, je récupere une erreur
  13.               //du style: SSL certificate problem, verify that the CA cert is OK
  14. ob_start();
  15. curl_exec ($ch);
  16. echo curl_error($ch);
  17. curl_close ($ch);
  18. $contenuPage = ob_get_contents();
  19. ob_end_clean();


 
Avez-vous une petite idée ?
merci


Message édité par johnlapin2b le 04-07-2012 à 07:53:57
Reply

Marsh Posté le 05-07-2012 à 10:03:44    

Y'a pas des cho du CURL ici ?
J'espère que ma demande n'est pas trop confuse !!!
cordialement

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed