lorik Posté 16 Février 2006 Posté 16 Février 2006 Bonjour, Je patine avec une ligne de code curl : Je veux executer un script distant avec curl (pas de problème à priori, j'utilise déja, sans trop comprendre, un bout de code qui marche bien). Mais je veux aussi récuperer le résultat du script distant. Et ça c'est nouveau pour moi. donc dans le script distant, je termine avec /* mon code à executer */return $mavariablearecuperer; Et dans mon script appellant, j'utilise curl : $urlscript="http://www.site.fr/monscript.php";$ch = curl_init();// Définition de l'URL et autres options appropriéescurl_setopt($ch, CURLOPT_URL, $urlscript);curl_setopt($ch, CURLOPT_HEADER, false);// Récupération de l'URL et passage au navigateur$result=curl_exec($ch);// Fermeture de la ressource CURL et libération des ressources systèmescurl_close($ch);echo "resultat=".$result; Le problème est que le code ci-dessus me renvoie $result=1, ce qui signifie que ça s'est bien passé, (ce qui est déja ça), mais pas $mavariablearecuperer. J'ai vu dans une doc qu'il faut ajouter une option CURLOPT_RETURNTRANSFER à curl_setopt, avec TRUE, mais je ne vois pas la syntaxe de l'instruction... Et je ne suis pas sur que mon return $mavariablearecuperer soit très indiqué dans ce cas. Merci de votre coup de main.
Dan Posté 16 Février 2006 Posté 16 Février 2006 Salut, Tout simplement avec: curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); appelé avant ton curl_exec() Il faut aussi que ton code distant imprime les valeurs à retourner... donc print ou echo plutôt que return() ; Dan
lorik Posté 16 Février 2006 Auteur Posté 16 Février 2006 Saint Dan veille toujours sur nous ! merci, merci.... Mais là, il y a un problème : curl_setopt($ch, CURLOPT_URL, $cookie); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); // pour que le script renvoi la variable // Récupération de l'URL et passage au navigateur $result=curl_exec($ch); J'ai toujours mon renvoie de 1, et pas $mavariable...
Dan Posté 17 Février 2006 Posté 17 Février 2006 Il faut aussi que ton code distant imprime les valeurs à retourner... donc print ou echo plutôt que return() ; As-tu changé ton return() en print ou echo ? Si le programme appelé n'affiche rien, il ne renverra rien à curl_exec() Dan
lorik Posté 17 Février 2006 Auteur Posté 17 Février 2006 Merci Dan, et mille excuses... je n'avais pas lu ton post jusqu'au bout Effectivement, avec un echo, tout marche nickel Longue vie !
trihanhcie Posté 27 Février 2006 Posté 27 Février 2006 Bonjour, sur les conseils de lorki, je viens vous demander de l'aide Voila sur un site1.com j'ai créé des cookies. Et j'aimerai que, sur le site2.fr, je récupère les données qui sont dans le cookie créé par site1.com... Apparement, je peux utiliser Curl(c'est installé sur le serveur) Quelqu un peut me donner un cours accélérer de curl et de l'utilisation des cookies avec curl? Merci
lorik Posté 27 Février 2006 Auteur Posté 27 Février 2006 Coucou trihanhcie, Je me suis mal fais comprendre dans le MP : Il n'est pas question de récuperer le contenu du cookie ! Pas possible ! Seulement de récuperer un RESULTAT d'un script distant, ce script distant se chargeant d'interroger sa base locale. tu devrais effectivement trouver de la matiere à reflexion dans ce post.
trihanhcie Posté 27 Février 2006 Posté 27 Février 2006 Oups... c'est moi qui ai mal lu ton mp lorki dsl... Ca me pose un problème ca ... Mais dans ce cas, je ne vois pas tellement l'intéret de curl en fait pour tout te dire... C'est pour ne pas utiliser les formulaires? Si c'est juste pour récupérer des informations sur le site2 qui sont stockées dans une base de donnée du site1, pourquoi ne pas utiliser un simple post ? En fait, pour mon problème, toute la base de donnée est bien sur le site1. Le site2, tout ce qu il doit faire, c'est faire tourner en fond un script du site1 qui utilise des cookies qui sont créés par le site1... et c'est ca qui fonctionne pas
trihanhcie Posté 27 Février 2006 Posté 27 Février 2006 heuu je dois etre long à la détente la... Ca veut dire que c'est sur le site2, qui va appeler un script du site1 que je dois utiliser curl? :s Ca va pas être évident ca j'aurai bien voulu que sur le site 2, il n'y ait que un img src :'(. je vais essayer ca qd mme si j'y arrive un jour Ce serait comment alors? Sur la page du site2, j'aurai qq chose comme : $urlscript="http://www.site1.fr/compteur.php";$ch = curl_init();// Définition de l'URL et autres options appropriéescurl_setopt($ch, CURLOPT_URL, $urlscript);curl_setopt($ch, CURLOPT_HEADER, false);curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);// Récupération de l'URL et passage au navigateur$result=curl_exec($ch);// Fermeture de la ressource CURL et libération des ressources systèmescurl_close($ch);echo "resultat=".$result; (je comprends pas grand chose la, j'ai repris ton code lorik je regarderai apres plus attentivement)
lorik Posté 27 Février 2006 Auteur Posté 27 Février 2006 Oui c'est ça. Dans $result, tu aura le nombre de visites extrait de ta BDD par le script compteur.php.
trihanhcie Posté 27 Février 2006 Posté 27 Février 2006 Mince... donc impossible de s'en sortir juste avec un img src ou un équivalent sur le site 2? Ca veut dire que, à chaque fois qu'un nouveau site voudra se joindre à mon compteur, il faudra d'une part que son hébergeur ait les librairies curl d'installer et d'autre part qu il mette mon bout de code sur sa page d'accueil?
lorik Posté 27 Février 2006 Auteur Posté 27 Février 2006 tu me mets le doute... Curl je l'utilise pour des scripts purement PHP, sans html. Peut être qu'un img src ou un script src peut faire l'affaire, mais là je ne sais plus...
trihanhcie Posté 27 Février 2006 Posté 27 Février 2006 Heu... bah ca marche pas super Need help !! <?$urlscript="http://www.site.fr/compteur.php";$ch = curl_init();// Définition de l'URL et autres options appropriéescurl_setopt($ch, CURLOPT_URL, $urlscript);curl_setopt($ch, CURLOPT_HEADER, false);curl_setopt($ch,CURLOPT_COOKIE,"CheckCookie=CheckCookie; domain=.site.fr; path=/test/");curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);curl_setopt($ch,CURLOPT_USERPWD, '[username]:[password]');$data = curl_exec($ch);// Fermeture de la ressource CURL et libération des ressources systèmescurl_close($ch);?> Bon plusieurs questions : Ce que je veux faire, c'est bien de lancer le script compteur.php sur le site.fr pour qu il fasse des requetes sur la bdd et dont une partie des données se trouve dans des cookies. compteur.php a écrit des cookies sur le pc client en lancant le script avec curl que je viens d'écrire à partir du site2, est ce que compteur.php va faire les requetes qu il faut et "lire" les données qui ont été écrite? Merci
lorik Posté 27 Février 2006 Auteur Posté 27 Février 2006 Non, on ne s'est pas compris : -Compteur.php est appellé par un img src, et enregistre la visite dans une base de données. Il implante aussi le cookie qui evite les doublons (voir mon MP). Le cookie ne sert qu'a ça, pas à stocker des données statistiques. seulement à flaguer l'internaute comme 'déja enregistré'. Les données se trouvent dans la base de données. - tu dois avoir un deuxieme script (disons stat.php) dont le role est d'extraire les stats de la base de données, et de les placer dans une variable (disons $stats). c'est stat.php qui doit etre appellé par CURL, pour afficher le contenu de $stats. Ou alors je n'ai pas compris ce que tu veux faire...
NorSeb Posté 28 Février 2006 Posté 28 Février 2006 Bonjour, Juste pour dire : les MP c'est bien, mais cela peut peut-être intéresser du monde
trihanhcie Posté 28 Février 2006 Posté 28 Février 2006 (modifié) En fait... Bon la raison pour laquelle je fais ca c'est que je suis en stage et ce que je ne peux pas vraiment tout dire sur ce que je fais... Secret proffesionnel quoi Comme j'ai dit à Lorik, je vais essayer d'expliquer un peu mieux... En fait, sur mon site2, tout ce que je dois faire, c'est exécuté mon script sur le site1 qui, lui, utilise des données qui sont dans les cookies écrit par le site1 et interrogeant ainsi la base de donnée. Ce serait bien que mon site2 ait juste qq chose comme un img src pour exécuter le script du site1 Seulement, si j'utilise juste img src sur le site2 pour lancer mon script sur le site1, le script du site1 ne s exécute pas correctement. Comment je sais ca? Une fois que les cookies étaient écrits par le site1, j'ai essayé d'écrire les données des cookies dans un fichier sur le serveur du site1 en lancant le script avec img src à partir du site2 et rien a été écrit dans le fichier. Pourtant, qd je lance le script "à la main" c'est à dire que j'exécute directement le script avec l'url du script de mon site1, ca fonctionne, c'est à dire que les données des cookies sont bien pris en compte et les requetes dans ma base de données sont bien faites. Mon site2 n'a donc pas besoin d'avoir les données sur site1 de retour en fait... Désolé de t'avoir induit en erreur avec ma question de compteur ... Voila désolé pour les coups des mp... J'espère que j'ai été plus clair Ah oui autre chose ... Juste pour information, le img src fonctionne sous firefox ... C'est à dire qu'il me lance bien le script du site1 et que les cookies sont bien lus... Qq a une explication? Modifié 28 Février 2006 par trihanhcie
lorik Posté 28 Février 2006 Auteur Posté 28 Février 2006 Je vois le truc... je crois ! Pour les img src, c'est le bon système, oublie CURL. Par contre, à mon avis, ta politique de confidentialité n'est pas correcte, et le poste client, quand il affiche ton site 2, refuse le cookie implanté par le site 1. Revois le post sur les cookies épinglé (c'est la qu'on s'est connu, hier déja, sniff ). As tu mis le fichier xml à la racine de ton site 1 (celui qui implante les cookies) ? J'utilise très exactement ce que tu veux faire, et des img src + politique de confidentialité, ça marche nickel. donc revois ton code...
trihanhcie Posté 28 Février 2006 Posté 28 Février 2006 C bien ce que je me disais.. Mais si tu veux je me vois mal dire à chaque personne : "mon script marche pas parce que votre politique de confidentialité sur internet explorer n'est pas la bonne, veuillez changer"... Le fichier xml je l'ai pas mis à la racine mais dans le dossier où j'ai mon script ... ca change qq chose?
lorik Posté 28 Février 2006 Auteur Posté 28 Février 2006 Salut, Là, je peux plus rien pour toi. Lis et essaie de comprendre le post dont je t'ai parlé, tout y est pour que ça marche, et notamment là ou il faut mettre les fichiers, la syntaxe, etc...
trihanhcie Posté 28 Février 2006 Posté 28 Février 2006 ok merci je vais regarder ca ... je te tiens au courant
trihanhcie Posté 28 Février 2006 Posté 28 Février 2006 Ca marche ! J'avais oublié de mettre le header pour le fichier xml ds certains de mes fichiers qui créaient les cookies Merci pour tout lorik
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant