ggbce Posté(e) le 7 février 2010 Partager Posté(e) le 7 février 2010 Bonjour, J'ai une question sur laquelle je n'ai pas trouvé réponse avec Google... et qui est également une partie de mon problème. J'ai un site web (mon site perso que vous pouvez trouver en lien dans ma signature également) qui est conçu comme ceci: J'ai une page web (index.html) dans laquelle j'ai bâti 2 frames, le frame de gauche est mon menu et le frame de droite est la navigation de toutes mes pages de mon site. Voici le code source: <body> <table width="100%" height="100%"> <tr> <td width="20%" height="100%"> <iframe frameborder="no" name="menu" src="menu.php" width="180" height="100%"> </iframe> </td> <td width="80%" height="100%"> <iframe frameborder="no" name="navigation" src="index2.html" width="100%" height="100%"> </iframe> </td> </tr> </table> </body> Le tout fonctionne très bien au niveau programmation, le problème est lorsque quelqu'un cherche sur Google (ou tout autre engin de recherche) et trouve une de mes pages web. Celui-ci donne directement le lien vers la page contenant le contenu et non vers mon site web de manière "complète"... Ce que je cherche à faire, c'est de forcer le chargement de ma page "maître" (index.html) si une page de navigation n'est pas appellée dans son frame "navigation". Il y a surement une méthode permettant de vérifier la valeur "name" du iframe dans lequel une page est chargée. Si celle-ci n'est pas valide, je pourrais faire une redirection URL vers ma page maître ??? Merci de votre aide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
BarthVonRies Posté(e) le 8 février 2010 Partager Posté(e) le 8 février 2010 Je ne comprends pas la structure de ta page là :-/ Pourquoi utiliser des iframe? Tu fais du php derrière, alors pourquoi utiliser cette horreur sans nom que sont les iframe? une façon plus simple de faire serait de faire des pages php (au lieu d'html) en incluant ton menu au bon endroit? par exemple: <body> <table width="100%" height="100%"> <tr> <td width="20%" height="100%"> <?php include 'menu.php'; ?> </td> <td width="80%" height="100%"> <!-- ton contenu ici --> </td> </tr> </table> </body> Si tu peux faire un .htaccess, sur le serveur, avec la réécriture d'url activée, tu peux même faire un simple index.php qui serait: <body> <table width="100%" height="100%"> <tr> <td width="20%" height="100%"> <?php include 'menu.php'; ?> </td> <td width="80%" height="100%"> <?php include $_GET['mapage'] . '.html'; ?> </td> </tr> </table> </body> et dans ton .htaccess: RewriteEngine on RewriteRule ^(.+).php$ index.php?mapage=$1 [L] ou un truc qui ressemble. Si tu n'as pas accès au .htaccess ou que tu n'as pas la réécriture d'url activée au niveau de ton navigateur, tu peux faire un fichier php par page de ton site: <?php header( "Location: index.php?mapage=XXXX"); ?> avec XXXX = le nom de la page en cours. Attention: ce code n'est volontairement pas sécurisé. Si quelqu'un s'amuse à appeler ta page avec l'url "http://www.tonsite.com/index.php?mapage=http://sitepirate.org/pagepiegee", tu vas te retrouver à inclure http://sitepirate.org/pagepiegee.html dans ton code. A toi de lire le sujet plus haut sur les failles courantes en PHP pour en apprendre plus sur le sujet! Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 23 février 2010 Auteur Partager Posté(e) le 23 février 2010 Pourquoi utiliser des iframe? Tu fais du php derrière, alors pourquoi utiliser cette horreur sans nom que sont les iframe? La réponse est forte simple, c'est un site web que j'ai développé avec le "temps". Ça fait plus de 10 ans que j'ai ajoute des modifications, alors il y a certaines bases des fois qui sont très difficiles à changer... c'est surtout le temps encore qui manque pour faire ces changements. Car avec les centaines de pages html et php qui sont sur mon site ce n'est pas d'un simple claquement de doigt que je vais le re-configurer au complet. Bref, la solution dans un TABLE m'était déjà passé par la tête, il y a 10 ans... mais j'avais opté pour des frames en raison des avantages qu'ils m'offraient (et qu'ils m'offrent toujours). Je peux avoir un menu fixe sur la gauche et une fenêtre de navigation déroulante sur la droite. Avec un TABLE tout la page suit le déroulement. Finalement j'ai trouvé ma solution par moi-même en cherchant un peu plus. Malheureusement cette solution implique tout de même de modifier le contenu de chaque fichier. Pour le moment, je m'en contente en modifiant mes pages principales. Pour les intéressés, voici ce qu'il faut faire avec java script: <head> ... <script type="text/javascript"> if (self.location == top.location) top.location.href = 'index.php?' + escape(self.location); </script> ... </head> NOTE: La ligne: top.location.href = 'index.php?' + escape(self.location); peut être remplacée par simplement top.location.href = 'index.php'; La valeur escape(self.location) permet simplement de mettre en string URL la provenance du lien afin de valider. Lien vers le commentaire Partager sur d’autres sites More sharing options...
RaphAstronome Posté(e) le 23 février 2010 Partager Posté(e) le 23 février 2010 Pourquoi pas des frames normales aux lieu des iframe : http://pagesperso-orange.fr/bernard.quevil...ew/frameset.htm Après ça ne répond pas à ton pépin mais au moins ce serait propre. Pour la redirection automatique tu peux la faire en javascript mais c'est vraiment pas recommandé. Pour ma part j'affiche juste un message en haut de la page. Test : http://www.astro5000.com/Objects/Cherche/i...at=M&obj=42 BarthVonRies > c'est pas mal comme méthode mais, comme précisé, attention à faire les vérifications. De plus ça ne fonctionnera que pour des fichiers statiques, le passage de paramètre là dedans me parait aléatoire. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.