OVH Cloud OVH Cloud

iframe ou page direct ?

6 réponses
Avatar
Fxparlant
Bonjour,

j'ai une page php qui est incluse dans une autre page, sous forme
d'iframe. Je voudrais être certain que les visiteurs qui appellent cette
page la voient bien comme iframe, pas comme page seule (éventuellement
les rediriger).

Quelqu'un peut il me donner un tuyau pour vérifier que la page est bien
en iframe

Merci de votre aide

Fxparlant (François)

6 réponses

Avatar
CrazyCat
Fxparlant wrote:
Quelqu'un peut il me donner un tuyau pour vérifier que la page est bien
en iframe


Tu as deux possibilités plus ou moins efficaces:
1) en PHP, utiliser getenv("REFERER") te permet de vérifier que c'est
bien ta page parent qui l'appelle.

2) en javascript, tu peux vérifier que la page est bien inclue dans un
frameset (à vérifier pour les iframes, j'en suis sur pour les frames)

--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.crazy-irc.net

Avatar
Denis Beauregard
Le 13 May 2005 15:38:19 GMT, Fxparlant écrivait
dans fr.comp.lang.php:

Bonjour,

j'ai une page php qui est incluse dans une autre page, sous forme
d'iframe. Je voudrais être certain que les visiteurs qui appellent cette
page la voient bien comme iframe, pas comme page seule (éventuellement
les rediriger).

Quelqu'un peut il me donner un tuyau pour vérifier que la page est bien
en iframe


Voir ce que fait le site www.quebecpop.com. Il y a un script en
javascript il me semble. Mais ce n'est pas en PHP... Je ne sais
pas si en PHP on pourrait faire la même chose.


Denis

Avatar
John GALLET
Bonjour,

j'ai une page php qui est incluse dans une autre page, sous forme
d'iframe. Je voudrais être certain que les visiteurs qui appellent cette
page la voient bien comme iframe, pas comme page seule (éventuellement
les rediriger).


Tu as a priori deux solutions sans changer la structure du codage. Je dis
bien "a priori" parce que je n'ai jamais joué avec.

- exécuter du JS sur la page générée en php pour le détecter (c'est la
seule méthode possible avec des frames en html pur)

- passer depuis la frame un argument à la page PHP "prouvant" que c'est
bien elle qui l'appelle. Dans le cas où le script ne reçoit pas cette
variable, c'est l'un des cas typiques (rares mais qui existent) d'utiliser
un bon coup de header(Location).

Dans les deux cas, ceci n'apporte strictement aucune sécurité, ça ne fait
que rediriger les égarés. A valider dans un cas comme dans l'autre le
comportement des moteurs de recherche si cela a une quelconque importance.

Par ailleurs, il est assez simple de se passer de frames de tous poils
avec php.

a++;
JG

Avatar
Damien
(snip)

Par ailleurs, il est assez simple de se passer de frames de tous poils
avec php.


J'avoue que je me tâte entre des maudits popups :( et des iframes...
Pour une application "perso" qui pour résumer est un CRM très très
light, c'est pratique de pouvoir faire des recherches dans une autre
table en même temps qu'on édite un formulaire. La frame permet d'éviter
de systématiquement "poster" le gros formulaire, pas tant pour des
problèmes de saturation de serveur mais plutôt de ne pas enregistrer des
données inutiles (fausses ou pas complètes).

Si quelqu'un à des solutions pour contourner ça...

@+
--
Ciegalo

"Viens bébé tente ta chance avec nous,
Dans le bus bleu essaie le caillou bleu, dans le bus bleu"
Les Portes

Avatar
John GALLET
Par ailleurs, il est assez simple de se passer de frames de tous poils
avec php.
J'avoue que je me tâte entre des maudits popups :( et des iframes...

Je parlais plutôt de frameset au sens html qui sont parfois utilisés comme

solution de facilité pour l'organisation de la présentation. S'il s'agit
pour des raisons de navigation d'ouvrir une autre fenêtre, peu importe la
technologie utilisée (JS, target="_blank", etc...) ce n'est qu'une
question d'esthétique.

Pour une application "perso" qui pour résumer est un CRM très très
light, c'est pratique de pouvoir faire des recherches dans une autre
table en même temps qu'on édite un formulaire.
En même temps, c'est à dire avec donc deux fenêtres/deux écrans

fonctionnels différents, c'est ça ?

La frame permet d'éviter de systématiquement "poster" le gros formulaire,
Moui ? Tu veux dire que si tu avais sur le même form html le moteur de

recherche et le formulaire en cours de saisie, ce serait moins pratique
c'est bien ça ? (je suis d'accord mais je vérifie que je comprends bien
le sujet)

pas tant pour des
problèmes de saturation de serveur mais plutôt de ne pas enregistrer des
données inutiles (fausses ou pas complètes).


Ca dépend lesquelles. S'il s'agit de détecter les champs obligatoires non
remplis, c'est la base de la gestion de tout formulaire. Mais si les
informations sont considérées complètes pour les champs obligatoires et
que tu as besoin de faire une recherche pour remplir une zone facultative,
c'est impossible de le détecter. Mais on s'en fout un peu, ce sera un
insert la première fois, et un update la deuxième. Que tu renseignes cette
information facultative 5 minutes après ou deux an après, c'est pareil.

Si quelqu'un à des solutions pour contourner ça...
J'ai du mal à cerner le "ça"... Si tu veux afficher les résultats d'une

recherche dans une nouvelle fenêtre, clairement, c'est pas dur, et c'est
probablement le plus simple de ce que je comprends de ton besoin.

a++;
JG


Avatar
Fxparlant
Merci à tous pour vos réponses. je vais essayer la version
getenv("REFERER"), au moins pour vérifier que la variable renvoie bien
l'url de la page contenant l'iframe. Toutefois il me semble en effet
beaucoup plus raisonnable d'ajouter une variable de session et de la
vérifier à chaque fois.

Merci pour votre aide dommage qu'il n'y ait pas fonction toute simple
qui donne la réponse.

François