Problême avec variable global dans fonction

Résolu/Fermé
vitessenet
Messages postés
2
Date d'inscription
mercredi 6 décembre 2006
Statut
Membre
Dernière intervention
6 décembre 2006
- 6 déc. 2006 à 05:56
 Ascarius - 20 juil. 2008 à 19:39
Bonjours a tous, je lis depuis quelque temps ce forum et parmis tout ceux visité il me semble le plus agréable a consulter.

Bon ça fait déja plus d'un an que je travaille sur un site web (qui fait office de logiciel intranet) en php, jusque la ça fonctionne a1 en intranet, sauf que par paraisse j'ai toujours laissé register_globals = off dans ma config de php.ini (il tourne sous windows XP) sauf que la j'héberge maintenant se site sur un hébergeur comercial qui lui exige register_globals = off (qui remplace le serveur en intranet)

Je récupère déja la variable page par la bonne fonction (je crois) ça semble donc avec la variable
$pageOK
que ça foire

la le site s'affiche tout croche actuellement (il s'affiche en double une page a la suite de l'autre en hauteur)


<?php 
echo '<div class="entete" >';
	 include('topmenu.php');  // l'entète de la page
echo'</div>';

echo '<div class="colonneGauche" >';
	 include('menu.php');   // la section menu
echo '</div>';


echo '<div class="colonneDroite">';	
echo '<td width="666" valign="top">'; // les pages web
echo '<div style="text-align: center">';

if($page==""){include('main.php');}


// définition des page autorisé 
  // ----------------------------------------------------
  $pageOK = array (
  'main' => './main.php',
  'billet' => './billet.php',
  'demo' => './liste-pasager.php',
  
  
  'gestion' => './console.php',  
  'transaction-jour-liste' => './transaction-jour-liste.php', 
  'ajout-de-forfait' => './forfait-ajout.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
  }
echo '</td></div>'; //fermeture propre de la case main et arrêt du centrage


echo '<div class="pied" >';
  include('pied.php');   //  le copyright OU LA FINITION GRAPHIQUE DE LA COLONE DE GAUCHE
echo '</div>';

?>

4 réponses

vitessenet
Messages postés
2
Date d'inscription
mercredi 6 décembre 2006
Statut
Membre
Dernière intervention
6 décembre 2006

6 déc. 2006 à 07:45
bon j'ai fini par comprendre pourquoi :

j'avias une erreur je récupérais pas la variable page pour vérifier si la variable avais déja été passé, au début. la ça fonctionne mieux

$page = $_GET['page'];

 if($page==""){include('main.php');}
0
if(!isset($_GET['page'])){ $page=""; }else{ $page = $_GET['page']; }


Cordialement,
Kevin
0
Ou :

$page = isset($_GET['page'] ? $_GET['page'] : "main.php";

Mais dans tous les cas, passer le nom d'un fichier que tu includes en GET est une grosse faille de sécurité; et courante en plus. Attention !
0
Ha non j'ai rien dit. Tu le contrôles.

Plutôt :

$page = isset($_GET['page'] ? $_GET['page'] : "";
0