ouvrir un lien dans une page précise. (insertion)

weppy
Invité n'ayant pas de compte PHPfrance

01 avr. 2008, 03:54

Bonjour,

Voilà comme l'indique mon titre je souhaites pouvoir ouvrir un lien dans une page précise.

Je m'explique.
j'ai deux pages (page1.php, page2.php)
sur page1.php j'ai un lien (<a href="... )

Question :

Comment faire pour que quand je clique sur le lien il s'ouvre à l'interieur de page2.php ?
( Quel code je doit mettre sur page1.php et sur page2.php ? )

Merci de vos réponses,
Bonne journée/soirée :wink:

Eléphant du PHP | 136 Messages

01 avr. 2008, 11:21

ta question n'est pas très précise
je pense qu'à partir d'une page tu veux ouvrir une autre page à un endroit précis de cette page.
si c'est le cas tu dois implanter une ancre dans ta page2 à l'endroit que tu as choisi
comme suit
<A name=ici></a>
et tu l'appelles à partir de page1
<a href=page2.php#ici>page 2 </a>
est-ce que c'était ta demande ?
L'informatique apporte des solutions à des problèmes qui ne se posaient pas avant qu'elle existe.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 avr. 2008, 12:27

Ca manque de contexte et de précision... S'il y a des frames, tu peux utiliser l'attribut target pour cibler l'un des cadres, s'il s'agit de pseudo-frames, il faut recharger la page en passant les paramètres désirer et jouer sur les includes, s'il n'y a pas de rechargement il faut utiliser ajax et alimenter un conteneur, ...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 3607 Messages

01 avr. 2008, 14:43

Et si en fait ce que tu souhaites c'est avoir des ancres, et bien fait une recherche dessus ;)

weppy
Invité n'ayant pas de compte PHPfrance

01 avr. 2008, 16:04

Merci à vous trois pour vos réponses,

En effet je me suis mal exprimé.

Non je ne parle pas d'une ancre.


Oui ce serait comme un target, mais sur une autre page.

En gros sur page1.php :
<a href="le-lien.com" target="zone_sur_page2.php">

Merci de vos réponses.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 avr. 2008, 16:22

Euh... le target c'est si tu manipules des frames ou des iframes... tu ne cibles donc pas une zone d'une page, mais un cadre... la question est : est-ce que tu manipules des frames ou des iframes ?

Quel est le rapport entre tes page1 et page2 ? elles sont affichées en même temps dans deux cadres différents où ce sont deux pages totalement indépendantes ?

Peut-on envisager que ta page2 se conduise comme une pseudo frame ?
Ton lien dans page1 serait alors :

Code : Tout sélectionner

<a href="page2.php?ouvremoi=le-lien.com">


Et dans page2, tu aurais à l'endroit où tu souhaites ouvrir le lien en question quelque chose du genre :
<?php include($_GET['ouvremoi']); ?>
Nota: c'est l'idée générale, il ne faut peut être pas inclure le fichier mais le lire avec un fopen/fread ou get_contents() etc.
Il faut également un maximum de contrôles sur la variable récupérée avant de l'utiliser pour éviter qu'il ne soit possible de remplacer le-lien.com par le nom du fichier contenant les infos de connexion à ta bdd par exemple ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

weppy
Invité n'ayant pas de compte PHPfrance

01 avr. 2008, 16:30

Merci de ta réponse.

Quand je méttait target= dans le code c'était pour expliqué ce que je voulait.

page1.php et page2.php sont deux pages entierement indépendantes, pas de frames ou d'iframes.

weppy
Invité n'ayant pas de compte PHPfrance

01 avr. 2008, 16:40

Je viens d'essayé ce que tu viens de me proposé Ryle, sur deux pages simples et celà marche.

Je vais donc bien mettre avec ma mise en page et le reste, et voir si tout est bon.

Merci à toi et aux autres.

(sujet non clos, en cas de problemes :) )

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 avr. 2008, 16:44

Fais surtout attention, comme je l'ai mentionné plus haut, à ne pas laisser un visiteur mettre n'importe quoi dans l'adresse de la page à ouvrir :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

weppy
Invité n'ayant pas de compte PHPfrance

01 avr. 2008, 16:48

J'ai déjà un probleme :

l'ouverture de la page demandé s'ouvre bien, mais les liens qui sont dessus changent.
pour que vous compreniez mieut :

page1:
http://jouezmaintenant.free.fr/page1.html

Quand on clique il affiche bien le lien demandé (ici pour exemple google.fr) sur page2.php (preuve avec le "@" affiché sur cette page) mais les liens changent tous. comme si la page était hebergé sur le compte free quoi..

Comment faire pour vraiment affiché le lien avec ses propriétés à lui ?

Merci.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 avr. 2008, 17:10

Le mettre dans une iframe ?

En fait, lorsque tu inclues la page, tu va récupérer le code html de cette dernière et l'inclure dans le code de ta page à toi. Donc au final, ta page est bien hébergée chez free et les liens relatifs se retrouvent donc relatif à ton site et non à celui d'origine.

Donc au lieu d'inclure directement le flux html il te faudrait le lire avec fopen()/fread() etc. le parser pour retrouver les liens relatifs et les modifier pour y rajouter l'url d'origine. Mais cela implique aussi que dès que tu lanceras une recherche, c'est la véritable page de google qui sera appellée directement et non via ta "page2".

Si tu veux juste proposer la navigation d'un autre site depuis le tiens, ouvre le simplement dans une iframe :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 422 Messages

01 avr. 2008, 17:22

Que fais-tu si ta page appelée a des arguments ?

Code : Tout sélectionner

http://jouezmaintenant.free.fr/page2.php?ouvremoi=http://www.phpfrance.com/forums/posting.php?mode=reply&t=239271
Est-ce que l'argument t=239271 est un argument de page2.php ou un argument de posting.php ?
Un conseil : utilise urlencode() et urldecode() pour la page passée en argument. Ca donnera une URL en argument qui ressemblera à ça et où il n'y aura aucune ambiguité

Code : Tout sélectionner

http://jouezmaintenant.free.fr/page2.php?ouvremoi=http%3A%2F%www.phpfrance.com%forums%posting.php%3Fmode%3Dreply%26t%3D239271
Comment faire pour vraiment affiché le lien avec ses propriétés à lui ?
Après avoir lu la page passée en argument, il faut que tu repères tous les <a href ... >, toutes les actions de formulaires, toutes les sources d'images, tous les appels à des CSS ou des javascripts externes (et encore tous les trucs auquel je ne pense pas) qui ne sont pas en http:// (ou https:// ou ftp://) et que tu les re-préfixes avec l'URL du site :

En gros, ta page Google contient ça

Code : Tout sélectionner

... background:url(/intl/ja/images/productlinktabs.png) ... new Image().src='/images/nav_logo3.png' ... <img alt="Google" height=110 src="/intl/fr_fr/images/logo.gif" width=276> ... <form action="/search" name=f> ... <a href="/intl/fr/about.html">À propos de Google</a> ...
et tu dois la transformer en ça...

Code : Tout sélectionner

background:url(http://www.google.fr/intl/ja/images/productlinktabs.png) ... new Image().src='http://www.google.fr/images/nav_logo3.png' ... <img alt="Google" height=110 src="http://www.google.fr/intl/fr_fr/images/logo.gif" width=276> ... <form action="http://www.google.fr/search" name=f> ... <a href="http://www.google.fr/intl/fr/about.html">À propos de Google</a> ...
Bon courage avec les expressions régulières.

weppy
Invité n'ayant pas de compte PHPfrance

01 avr. 2008, 17:44

Le mettre dans une iframe ?

Si tu veux juste proposer la navigation d'un autre site depuis le tiens, ouvre le simplement dans une iframe :)
Oui c'est ce que je veux, mais pas sur la page1.
Serait il possible alors de l'ouvrir dans une iframe qui ce trouverait sur page2.php ?

Merci.
Merci aussi au autres réponses qui sont malheuresement trop compliquées pour moi, et qui vont peu être trop loin par rapport au petit truk que je veux faire..

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 avr. 2008, 18:06

Bah euh... oui... c'est quasiment tout pareil en fait, il suffit juste dans ta page2 d'utiliser le paramètre que tu récupères dans l'url pour le coller dans la source de l'iframe :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

weppy
Invité n'ayant pas de compte PHPfrance

01 avr. 2008, 18:10

je ne suis pas sur de bien comprendre.

En code ça donne quoi ?

Quelquechose qui ressemble à ça :

<a href="le-lien.com" target="zone_sur_page2.php"> ??