[RESOLU] redirection des frames

superfourmi
Invité n'ayant pas de compte PHPfrance

16 avr. 2005, 10:08

bonjour a tous:

voila je vous explique mon probleme. j'ai un index.htm qui charge une page de menu a gauche, et une page centrale. dans mon menu, chaque lien donne sur une page générée en php. le probleme est que je peux ouvrir chaque lien indépendament du reste (du genre je tape directement http://test.com/test.php et j'affiche directement la page). comment faire pour que quelque soit l'adresse en interne que je veux atteindre directement, il me soit imposé le chargement du cadre de mon site (menu frame de gauche).

merci e a plush

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

16 avr. 2005, 13:24

j'ai beau relire plusieurs fois je ne saisis pas bien ton soucis :oops:

edit : ah si peut-être en fait

tu veux dire que si quelqu'un charge directement une page qui devrait être affichée dans le frame de droite avec le menu à gauche, qu'elle ne voit pas uniquement cette page mais qu'un système fasse apparaitre le menu ?

tu peux tester d'où vient cette personne pour arriver sur la page et si elle n'a pas cliqué sur le menu et bien rediriger vers ton framset, en mettant une petite variable par exemple spécifiant la page à ouvrir

Luna
Invité n'ayant pas de compte PHPfrance

31 mai 2006, 18:38

Superfourmi, si tu as trouvé la solution cela m'intéresse.
J'ai aussi une page index.php qui contient un include "menu.php". Le problème et que si un internaute tape www.monsite.com/menu.php seul le menu s'affiche.
L'idéal serait que si quelqu'un veut taper www.monsite.com/menu.php, il soit redirigé vers l'index.php.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

31 mai 2006, 18:55

Pour éviter qu'une frame soit affichée seule
et automatiser le chargement du frameset complet,
il faut utiliser un javascript à placer en tête de chaque page de frame.

Je ne l'ai pas en tête mais tu peux retrouver facilement ce genre de script avec :google:

Eléphant du PHP | 197 Messages

01 juin 2006, 03:00

tu devrais voir la doc de header pour faire des redirections... une ptit coup de GET et hop... :oops: j'en ai trop dit :p

Eléphant du PHP | 119 Messages

01 juin 2006, 08:11

si c'est des pseudo frame que tu utilises, faut que tu fasse dans ta page index.php

un array ou tu met toutes les page autorisées.
$page0K = array('connexion' => 'connexion.php',
                                  'accueil' => 'accueil.php');
apres tu test que ta page est autorisée dans le array sinon tu affiches une page par default.

apres tes liens seront du style index.php?page=accueil

if ((isset($_GET['page'])) && (isset($page0K[$_GET['page']]))) {
				include($page0K[$_GET['page']]);
			} else {
				include('accueil.php'); // Page par defaut.			
			}
et surtout tu fais des include de tes pages.
include("header.php");

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

01 juin 2006, 11:44

Suffit d'un p'tit bout de javascript qui compte le nombre de frames incluant la page en cours, s'il n'y en a pas on redirige vers la frame :

Code : Tout sélectionner

if (parent.frames.length < 1) { document.location = 'url_de_la_page_principale'; }
Personnellement j'enrichie en général en passant le nom de la page d'où je viens en paramètre, de manière à ce que la frame puisse le récupérer et l'ouvrir directement sans revenir à l'accueil (bon pour un menu ça n'a aucun interet :))

Luna
Invité n'ayant pas de compte PHPfrance

02 juin 2006, 22:16

Super j'ai testé la méthode d'Azerty53 et ça marche. Merciiiiiiiiiiiiiiii :D