lorik Posté 23 Mai 2005 Posté 23 Mai 2005 Bonjour, Je suis nouveau ici, mais ça à l'air sympa ! Une question un peu 'hard' pour commencer : Je cherche à passer un script php par la balise <img src=http://www.monscript.php>. J'ai vu ça quelques fois, notamment dans l'excellent script phpmyvisites, mais je n'arrive pas à reproduire. Pas de message d'erreur, simplement, c'est comme si mon script n'était pas appellé. Il ne se passe rien. Je l'appelle à partir d'une page html (pas php), mais je ne pense pas que ça soit important. Et pour la petite histoire, je voudrais que l'url (et ses variables) de la page appellante soit récupérée dans le script appellé. Mais il faut d'abord que le script marche ! Par avance merci si quelqu'un a déja fais ça et peut me donner un tuyau. A +
Anonymus Posté 23 Mai 2005 Posté 23 Mai 2005 J'aurais tendance à dire.. facile, il suffit de marquer : <img src=http://www.monsite.com/monscript.php> Ensuite, que veux tu qu'il se passe ? Parce que là, ce qu'il va se passer, c'est que le programme en question va appeler une image, qui s'appelle monscript.php. (et c'est là que ca devient plus 'complexe'.) Si le programme 'monscript.php' n'envoie pas les bons 'headers', si 'monscript.php' ne renvoie pas une image, alors tu n'auras rien qui s'affichera. Si monscript.php ne contient qu'une seule ligne, du genre echo'coucou'; alors non, rien ne s'affichera . Par contre, si monscript.php contient une 'vraie image', alors ca renverra une image Ensuite, monscript.php peut faire des 'choses', avant d'envoyer l'image. Par exemple compter des stats, générer l'image dynamiquement, etc.. Etc.. Saurais tu être plus précis ?
lorik Posté 23 Mai 2005 Auteur Posté 23 Mai 2005 Bonjour Anonynus, et merci, Bon, premièrement, je suis un burin ! En fait, mon script est bien appelé, mais j'avais oublié quelques include dedans, donc le resultat était pas le bon ! Donc ce point est OK. Pour ce script, ce que je cherche, c'est qu'il entre dans une BD des données présentes d'ans l'url de la page 'mère'. Exemple, si la page mere se nomme 'page.htm?var=12&var2=20', je veux récupérer var et var2 dans mon script. Mais attention, la page 'mere' est en .htm, donc pas question de glisser du php dedans, ça serait trop facile ;-)) Donc mon souci c'est d'arriver à récuperer ces variables. après, pour l'insertion en BDD, pas de problème. Dans phpmyvisites, il y a tout un tas de javascript avant le <img src...>. Mais si en php je suis pas bon, en JS c'est l'horreur ! Voila, voila, voila... Merci de ton aide si tu vois une piste, et sinon, merci quand même d'avoir essayé !
Anonymus Posté 23 Mai 2005 Posté 23 Mai 2005 Si ta page s'appelle : 'page.htm?var=12&var2=20', tu oublies. Il te faut une page qui s'appelle page.php?etc.. autrement dit, une page php. Si tu peux éventuellement mettre : page.htm, mais que ce ne soit pas une page .htm, alors c'est possible. Pour cela, tu pourrais t'aider de l'url_rewriting (voir les articles du Hub, partie 'publication'). Tu gardes ton 'page.htm?etc..', lorsque l'on appelle cette page, le htaccess fait un appel à la page 'page.php?etc..', et dans cette page en php, tu fais 'ce que tu veux'. Mais si tu veux garder cette 'page.htm', en appel et sur le serveur, alors je ne vois pas comment tu peux faire. Désolé.
Compte supprimé Posté 24 Mai 2005 Posté 24 Mai 2005 Si j'ai bien compris, lorsque une image est appelée sur ton serveur, tu veux récupérer l'url de la page mère et les paramètres qui vont avec ? (ou alors j'ai rien compris) Dans monimage.php tu fais : <?php// traitement du $_SERVER['HTTP_REFERER'] pour récupérer les parametres et ajout dans base de donnée// pas de mise en cache de l'imageheader("Expires: Mon, 26 Jul 1997 05:00:00 GMT");header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");header("Cache-Control: no-cache, must-revalidate");header("Pragma: no-cache");// lecture de l'image$fichier='monimage.gif';$image = fread(fopen($fichier, "r"), filesize($fichier));// envoi de l'imageHeader("Content-type: image/gif");echo $image;?> PS: pourquoi ne pas donner directement un nom classique à l'image (genre monimage.gif) et forcer la compilation ?
lorik Posté 24 Mai 2005 Auteur Posté 24 Mai 2005 Bonsoir et merci Jeroen, Effectivement, j'arrive à récupérer l'url de la page mêre avec : $url=$_SERVER["HTTP_REFERER"]; Je t'avoue que j'ai pas compris grand chose à ton script incluant une image, avec les header et tout, mais bon, j'ai le résultat, c'est déja ça ! Maintenant, il faut que je décortique cette url, pour en sortir les variables, et notamment les mots clès qui doivent y figurer. Je m'y colle ! Merci encore A+
lorik Posté 4 Juin 2005 Auteur Posté 4 Juin 2005 Bonjour, Je continue dans ma quette ultime de la stat... J'ai un petit soucis avec $_SERVER['HTTP_REFERER']; Je rapele le contexte : J'ai une page 'mere.htm', dans laquelle figure un tag javascript appelant un script 'monscript.php', via un <img src=monscript.php...>. Ca marche bien. Mais dans monscript.php, je veux récupérer l'url et les variable de 'mere.htm'. Donc simple, j'utilise $_SERVER['HTTP_REFERER']; qui devrait me renvoyer $;http://domaine.com/mere.htm?touteslesvariables'. Le souci : Dans +/- 5% des cas, $_SERVER['HTTP_REFERER']; est vide ! ce qui est impossible, sauf si le tag est appellé 'en direct' dans la barre d'adresse du navigateur, ce qui serait extraordinaire puisque c'est une script en test sur une page spécifique. D'ou ma question : $_SERVER['HTTP_REFERER'] est il fiable, quelqu'un adéja connu le problème ? Par avance merci En effet, parfois, un peu trop souvent à mon gout, il ne
Dan Posté 4 Juin 2005 Posté 4 Juin 2005 Il est fiable, sauf pour les personnes derrière un parefeu qui ont choisi de ne pas transmettre le REFERER ... il y en a assez peu, mais il y en a quand même. Dan
Loupilo Posté 4 Juin 2005 Posté 4 Juin 2005 Il est fiable, sauf pour les personnes derrière un parefeu qui ont choisi de ne pas transmettre le REFERER ... il y en a assez peu, mais il y en a quand même. Dan <{POST_SNAPBACK}> Avec Firefox, on peut également ne pas transmettre le REFERER, option que j'active dans pas mal de cas... Je pense que c'est également possible via Opera... Donc tes 5% de vides viennent surement des navigateurs et des pare-feu, comme le souligne Dan...
Compte supprimé Posté 4 Juin 2005 Posté 4 Juin 2005 (modifié) Avec Firefox, on peut également ne pas transmettre le REFERER, option que j'active dans pas mal de cas... Ah ? C'est où ?, j'ai pas trouvé Modifié 4 Juin 2005 par jeroen
Loupilo Posté 4 Juin 2005 Posté 4 Juin 2005 Ah ?C'est où ?, j'ai pas trouvé <{POST_SNAPBACK}> Avec WebDeveloper, on peut choisir, dans l'onglet 'Désactiver', le 'Referrer' Loupilo.
Dudu Posté 4 Juin 2005 Posté 4 Juin 2005 (modifié) Ce n'est pas natif dans Firefox, c'est dispo uniquement avec l'extension WebDeveloper Ou alors les équipes de Mozilla n'ont implementé çà que récemment.. çà je ne saurais pas dire, je suis tellement accroché à la légèreté de Safari que je n'utilise Firefox que pour des tests. [edit] damned, je m'étais fait grillé, j'avais pas vu [/edit] Modifié 4 Juin 2005 par Dudu
Compte supprimé Posté 4 Juin 2005 Posté 4 Juin 2005 Avec WebDeveloper, on peut choisir, dans l'onglet 'Désactiver', le 'Referrer' J'ai bien webdeveloper, mais j'avais cherché dans firefox Merci !
Loupilo Posté 4 Juin 2005 Posté 4 Juin 2005 J'ai bien webdeveloper, mais j'avais cherché dans firefox Merci ! <{POST_SNAPBACK}> Tu peux aussi taper 'about:config' dans ta barre d'adresse, mettre le filtre sur network.http.sendRefererHeader, et passer sa valeur qui par défaut est à 2 à 0. Radical Tu désactives complètement les referrer.
Compte supprimé Posté 4 Juin 2005 Posté 4 Juin 2005 superbe ! y'aurait pas un tutorial quelque part sur le web qui explique toutes les lignes du about:config ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant