Page 1 sur 1

pb pour récuperer une variable dans l'url

Posté : 06 mars 2009, 16:54
par graphitruc
bonjour,

Je voudrais inclure un fichier en fonction de la variable file qui s'affiche dans l'url,
mais je n'y arrive pas. C'est toujours "choisir une option" qui s'affiche

une idée ?

voici le code :

Code : Tout sélectionner

<?php require "news-conf.php3"; if ($file == "addn") { require "addnews.php3"; } elseif ($file == "modn") { require "modnews.php3"; } elseif ($file == "deln") { require "delnews.php3"; } elseif ($file == "up") { require "upload.php3"; } else { echo "choisir une option"; } ?> <div> <? echo "<a href=\"index_fr.php3?file=addn\">Add news</a>" ?> | <? echo "<a href=\"index_fr.php3?file=modn\">Update news</a>" ?> | <? echo "<a href=\"index_fr.php3?file=deln\">Delete news</a>" ?> | <? echo "<a href=\"index_fr.php3?file=up\">Upload images</a>" ?> </div>

Posté : 06 mars 2009, 16:56
par sylvaing26
$file = $_GET['file'];

Posté : 06 mars 2009, 16:57
par Sodams
Utilise
$_GET["file"]
au lieu de
$file
http://www.manuelphp.com/php/reserved.variables.get.php

Posté : 06 mars 2009, 17:00
par graphitruc
bonjour,

oui j'ai déjà essayé cette méthode mais je n'ai pas réussi !
comment l'integres tu ? dans une condition ?

merci

Posté : 06 mars 2009, 17:12
par Sodams
if(isset($_GET["file"]))
{
     $file = $_GET['file'];
     if ($file == "addn") 
    { 
          require "addnews.php3"; 
    } 
}

Posté : 06 mars 2009, 17:14
par Victor BRITO
Pour mieux illustrer le message précédent.

Récupérer le paramètre d'URL file directement avec une variable $file illustre le principe de la directive register_globals, une directive qui pose plus d'inconviénients (notamment, en matière de sécurité) que d'avantages (d'ailleurs, cette directive sera supprimée dans PHP 6).

Pour qu'une variable $file puisse récupérer le paramètre d'URL file, il vaut mieux procéder comme suit.
// Si le paramètre d'URL file est passé, $file en prend la valeur
if (isset ($_GET['file'])) $file = $_GET['file'];

// Sinon, $file prend une autre valeur (chaîne vide, null, false...)
else $file = null;
Dans la première condition, il est, de plus, recommandé de vérifier que $_GET['file'] a une valeur attendue ; si ce n'est pas le cas, on ne récupère pas la valeur du paramètre.
// Si le paramètre d'URL file est passé et vaut la valeur attendue, $file en prend la valeur
if (isset ($_GET['file']) && $_GET['file'] == 'valeur attendue') $file = $_GET['file'];

// Sinon, $file prend une autre valeur (chaîne vide, null, false...)
else $file = null;

Posté : 06 mars 2009, 21:36
par Yosh
Rien de plus à dire ^^

Posté : 06 mars 2009, 22:51
par graphitruc
C'est nickel merci ! :pouce: