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

  FORUM HardWare.fr
  Programmation
  PHP

  enregistrer source d'une page externe après traitement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

enregistrer source d'une page externe après traitement

n°2138942
johnlapin2​b
Posté le 25-04-2012 à 11:40:58  profilanswer
 

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

mood
Publicité
Posté le 25-04-2012 à 11:40:58  profilanswer
 

n°2138946
flo850
moi je
Posté le 25-04-2012 à 11:50:26  profilanswer
 

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

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

n°2138953
johnlapin2​b
Posté le 25-04-2012 à 12:14:52  profilanswer
 

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
 

n°2138987
flo850
moi je
Posté le 25-04-2012 à 14:15:53  profilanswer
 

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


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

n°2141492
johnlapin2​b
Posté le 09-05-2012 à 12:10:37  profilanswer
 

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
 

n°2141502
flo850
moi je
Posté le 09-05-2012 à 12:30:55  profilanswer
 

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


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

n°2141740
johnlapin2​b
Posté le 10-05-2012 à 11:08:37  profilanswer
 

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

n°2141742
flo850
moi je
Posté le 10-05-2012 à 11:10:29  profilanswer
 

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


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

n°2141764
rufo
Pas me confondre avec Lycos!
Posté le 10-05-2012 à 11:52:24  profilanswer
 

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
n°2142242
johnlapin2​b
Posté le 14-05-2012 à 10:03:54  profilanswer
 

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.

mood
Publicité
Posté le 14-05-2012 à 10:03:54  profilanswer
 

n°2148005
johnlapin2​b
Posté le 04-07-2012 à 07:52:54  profilanswer
 

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
n°2148181
johnlapin2​b
Posté le 05-07-2012 à 10:03:44  profilanswer
 

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


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

  enregistrer source d'une page externe après traitement

 

Sujets relatifs
Traitement de fichier avec python ! outils business intelligence open source php
enregistrer des actions et en faire une "macro"Forcer le titre de l'entête à rester au milieu du bloc !?!
[resolu ]ma méthode pour empecher l'accés direct à une page. Correct ?erreur xml lors d"ouverture de page
[Résolu] Intégrer le code du captcha au reste du code de traitement[Resolu] Word 2010, ouvrir un fichier .doc et l'enregistrer en .pdf
code source ERP openbravo sous Elipse 
Plus de sujets relatifs à : enregistrer source d'une page externe après traitement


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