Passage par index.php obligatoire...

Fermé
Nunuxnewby Messages postés 432 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 5 février 2010 - 2 nov. 2007 à 21:06
Nunuxnewby Messages postés 432 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 5 février 2010 - 2 nov. 2007 à 22:24
Bonjour,
Mon but est d'empêcher l'affichage d'une page PHP si elle n'est pas inclue dans l'index.

Voici le code (simplifié) de mon index.php

<head>
</head>
<body>
<div class="conteneur">	
<?php  include('common_files/top_menu.php'); ?>
			<?php
			
			// Liste des pages valides
			$PagesValides = array(
			'accueil' => 'accueil.php',
			'contact' => 'contact.php',
			);
						
			 // On teste que le paramètre d'url existe et qu'il est bien autorisé
			 if ( (isset($_GET['page'])) && (isset($PagesValides[$_GET['page']])) ) {
			include($PagesValides[$_GET['page']]); 
			 } else {
			include('accueil.php');
			 }
			?>
</div>
</body>


Donc les adresses de mes pages sont http://www.monsite/index.php?page=lapagequejeveux

mais si je tape l'adresse directe d'une des pages exemple http://www.monsite.accueil.php, celle ci n'est pas inclue dans l'index (qui permet une mise en forme commune à toute les pages.

J'ai essayé le

<?php require_once ("index.php"); ?>


en haut de toute mes pages, mais elles s'affichent à la suite de la page d'accueil (puisque celle ci est définie par défaut si le $_get(page) est vide.

J'ai essayé:

$from = getenv("HTTP_REFERER");
if($from != "http://www.monsite/index.php")
{header("location: index.php");
exit;}

Mais si je tape directement http://www.monsite.com/index.php dans le navigateur, je ne vient de "nulle part" donc ça ne va pas!

Voilà!

Merci d'avance de l'aide que vous allez apporter à un débutant! :-)

3 réponses

Nunuxnewby Messages postés 432 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 5 février 2010 124
2 nov. 2007 à 21:32
Bon... des heures que je cherche, j'ai posté y'a qlq minutes, il suffit que je poste pour qu'un semblant de solution se pointe...
Il semble que en mettant au début de mes pages (sauf index.php évidement) le code suivant, ça marche!

<?php
if($_SERVER["PHP_SELF"] != "/index.php")
{header("location: index.php");
exit;}
?>


Mais est ce sécurisé? ça me semble trop facile...

Merci!





0
Snip714 Messages postés 240 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 27 août 2015 65
2 nov. 2007 à 21:37
C'est sécurisé

http://www.wazerty.net/tutoman/php/redirect/cours76.pl
0
Nunuxnewby Messages postés 432 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 5 février 2010 124
2 nov. 2007 à 22:24
Merci pour ta réponse même si le site Wazerty ne marche pas! :-)
0