Rechercher : dans
Par :

Problême avec variable global dans fonction

Dernière réponse le 20 jui 2008 à 19:39:47 vitessenet, le 6 déc 2006 à 05:56:48 
 Signaler ce message aux modérateurs

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>';

?>

Meilleures réponses pour « problême avec variable global dans fonction » dans :
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...

1

vitessenet, le 6 déc 2006 à 07:45:44

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');}

Répondre à vitessenet

2

KeGi, le 20 oct 2007 à 23:26:41

if(!isset($_GET['page'])){ $page=""; }else{ $page = $_GET['page']; }


Cordialement,
Kevin

Répondre à KeGi

3

Ascarius, le 20 jui 2008 à 19:36:50

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 !

Répondre à Ascarius

4

 Ascarius, le 20 jui 2008 à 19:39:47

Ha non j'ai rien dit. Tu le contrôles.

Plutôt :

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

Répondre à Ascarius