Comment transmettre une URL précise à une iframe ?

WRInaute passionné
Bonjour,

Voilà le problème :

J'ai site qui affiche une librairie amazon dans une iframe.
Il affiche celle-ci à la page -www.monsite.com/librairie.php
Comme c'est une iframe, quelque soit le lien cliqué dans celle-ci, l'URL de la page principale reste toujours -www.monsite.com/librairie.php

Depuis les autres pages du site, je veux faire un lien vers une page particulière de la librairie située dans l'iframe, par exemple :
Depuis la page -www.monsite.com/tout-sur-les-bananes.htm, je veux faire un lien vers la page -http://librairiemarqueblanche.monsite.com/la-banane

Le soucis c'est que la dernière page citée, s'affiche dans la page -www.monsite.com/librairie.php, comme nous l'avons vu.
Or si je fais un lien vers cette page, j'aurai dans l'iframe la page d'accueil de la librairie. Et je veux la page sur la-banane.
Mais si je fais un lien précis vers la page de la marque blanche, je vais avoir celle-ci non inséré dans mon site.

Donc je veux pouvoir afficher directement la page la-banane de l'iframe, dans la page principale librairie.php.

J'espère que je suis clair.

Merci d'avance pour vos réponses lumineuses :idea:
 
WRInaute impliqué
Je ne me souviens plus de la syntaxe exacte, mais ta Frame doit avoir un nom (en label si mes souvenirs sont bons). Donc il te suffit de faire le lien suivant :
<a href="http://librairiemarqueblanche.monsite.com/la-banane" target="#le_nom_de_la frame">

Il te faudra surement fouiller un peu le net pour retrouver les syntaxes, mais dans le principe c'est ça.
 
WRInaute impliqué
Alors en php, tu peux toujours passer tes variables dans l'url. C'est risqué, surtout si tu fais appel a des pages externes.

Dans ta frame, il faut alors recupérer la variable $_GET['mavariable'], et l'afficher grace a un include.

Apres je ne me suis jamais servi de ça pour des frame donc je ne connais pas le limites ni comment reduire les risques d'injections.
 
WRInaute passionné
Effectivement, y'aurait une solution un peu lourdingue, qui consisterait à faire quelque chose comme ça :

Je crée une table avec 3 champs :
Code:
clef primaire, titre et url

Je fais un lien comme ça
Code:
<a href=" -www.monsite.com/librairie.php?livre=1">La banane</a>

Arrivé sur la page librairie.php, je récupère ?livre, je vais chercher l'url qui correspond et je la transmet dans l'iframe, comme ça :

Code:
<iframe src="http://librairiemarqueblanche.monsite.com/la-banane" ></iframe>


Quelqu'un voit quelque chose de mieux ?
 
WRInaute impliqué
Pas mieux non. Mais le fait de prédéfinir tes urls dans une table te protège déjà plus des injections de pages.

C'est lourdingue a mettre en place au début certes, mais ton site sera beaucoup plus evolutif par la suite.
 
WRInaute passionné
Bon alors c'est vendu.

Merci pour ton aide Djoule_logo.




Ah une question quand même, que veux-tu dire par "être protégé des injonctions de page" ?
 
WRInaute impliqué
bah si tu dois faire appelle a des url externes dans tes variable pour les afficher sur ton site (exemple sans bdd pour l'instant)
Code:
<a href="www.monsite.com/librairie.php?livre=http://url_externe>

Rien ne m'empeche de recuperer ce lien dans la source et de tapper dans la barre d'addresse
Code:
<a href="www.monsite.com/librairie.php?livre=http://www.monsite/monhack.php>

Mon script sera alors exécuté par ton serveur :p

Mais si tu passe par une bdd, il n'y a plus d'url externe visible directement. Cela limite donc ce genre d'attaque.
 
Discussions similaires
Haut