Pseudo frames

Invité
Invité n'ayant pas de compte PHPfrance

06 janv. 2008, 16:17

salut,

j'ai mis ce code de pseudo frame mais apparament ca marche pas, comme resultat toujours erreur.php:
<?php
    include ("rubrique.php");/* inclusion du fichier "rubrique.php" */
?>
<html>
<head>
<title>Titre: <? echo "$title"; ?></title>
</HEAD>
<body>
<table border ="1" width="100%" height="500" border="0" cellspacing="1" cellpadding="0">
  <tr> 
    <td colspan="2"> 
      
      <div align="center"><?php include("header.php") ;/* inclusion du
fichier "header.php" */ ?></div></td>
  </tr>
  <tr> 
    <td bgcolor="#999999"> <div align="center"><strong><font size="3"
face="Verdana, Arial, Helvetica,
sans-serif">MENU</font></strong></div></td>
    <td> 
      
      <div align="center"><?php include("menu_h.php") ; /* inclusion du
fichier "menu_h.php" */ ?></div></td>
  </tr>
  <tr> 
    <td width="14%" bgcolor="#999999"> <div align="center">
        <?php include("menu_v.php") ; /* inclusion du fichier "menu_v.php"
*/ ?>
      </div></td>
    <td width="86%" bgcolor="#999999"> 
     
      <div align="center"> <?php include($_GET["page"]) ; /* inclusion des
pages */?></div></td>
  </tr>
  <tr> 
    <td colspan="2"> 
      
      <div align="center"><?php include("footer.php") ; /* inclusion du
fichier "footer.php" */ ?></div></td>
  </tr>
</table>
</body>
</html> 
et voila le code rubrique:
<?php

$_GET["page"]='';/* on declare la variable "$_GET["page"]" */

if (isset($_GET["p"])) {/* On détermine si la variable "$_GET["p"]" est
affectée */
    $_GET["page"] = 'page'.$_GET["p"].'.php';/* si la variable "$_GET["p"]"
est affectée on affiche la page */
} else { /* sinon on affiche une page par defaut */
    $_GET["page"] = 'intro.php';/* nom de la page par defaut, à modifier
suivant necessité */
}

if (!file_exists($_GET["page"])) {/* On vérifie si un fichier existe */
    $_GET["page"] = 'erreur.php';/* s'il n'existe pas on affiche une page
d'erreur */
}
?>
ma 2eme question, est ce que ce code est securise??

merci pour votre aide

ViPHP
ViPHP | 2144 Messages

06 janv. 2008, 16:34

Deux petits trucs:

Tu n'as pas besoin d'essayer de créer une variable dans la variable globale GET (Tiens, c'est autorisé ça ?? :roll:)
$page fonctionnera très bien...

Ensuite, il en arrive à afficher erreur.php, c'est que les tests, l'ont conduit à le faire: as-tu fait des affichages dans les tests afin de voir pourquoi ? Notamment afficher la variable passée à file_exists(, afin de vérifier que c'est bien le nom d'un fichier qui existe dans le répertoire courant.

Invité
Invité n'ayant pas de compte PHPfrance

06 janv. 2008, 16:49

alors comment puis je corriger mon code pour que ca marche bien, j'ai fait des corrections la et la bas mais j'avais des erreurs :(

ViPHP
ViPHP | 2144 Messages

06 janv. 2008, 17:08

Je ne pense que tu ne comprends pas quelque chose:
On ne peut pas corriger ton code à ta place, pour la simple et bonne raison que l'on ne peut donc pas savoir ce que ton script reçoit comme paramêtre, ni même quels sont les fichiers à affiché qui existe.

Je t'ai donné dans mon message précédent la marche à suivre pour commencer à le débugger: tester les différentes étapes de ton algo, afin d'identifier dans quelle partie cela bug.

Invité
Invité n'ayant pas de compte PHPfrance

06 janv. 2008, 19:32

tu veux dire que je fais des echo pour savoir qu'est ce que ca retourne?

ViPHP
ViPHP | 2144 Messages

06 janv. 2008, 21:18

Oui
Ensuite, il en arrive à afficher erreur.php, c'est que les tests, l'ont conduit à le faire: as-tu fait des affichages dans les tests afin de voir pourquoi ? Notamment afficher la variable passée à file_exists(, afin de vérifier que c'est bien le nom d'un fichier qui existe dans le répertoire courant.

Eléphant du PHP | 271 Messages

07 janv. 2008, 01:11

Je travaille beaucoup en pseudo frames et voici le code que j'utilise. Il fonctionne très bien et n'ai pas eu de souci avec.
<?PHP 
  // pages autorisées
  // ----------------------------------------------------
  $pageOK = array('configuration/form_titre.php' => 'configuration/form_titre.php',
  				  'configuration/verif_config.php' => 'configuration/verif_config.php',
				  'public/bur.php' => 'public/bur.php',
				  'public/part.php' => 'public/part.php',
				  'public/parr.php' => 'public/parr.php',
				  'public/accueil.php' => 'public/accueil.php',
				  'public/finale_07.php' => 'public/finale_07.php');

  // On teste que le paramètre d'url existe et qu'il est bien autorisé
  // -----------------------------------------------------------------
  if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) )
   {
    include($pageOK[$_GET['page']]);  // Nous appelons le contenu central de la page
  } else {
    include('public/accueil.php');   // Page par défaut 
  }

?>
Patience et obstination sont des qualités !