pb pour récuperer une variable dans l'url

Petit nouveau ! | 8 Messages

06 mars 2009, 16:54

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>

Mammouth du PHP | 686 Messages

06 mars 2009, 16:56

$file = $_GET['file'];

Eléphant du PHP | 70 Messages

06 mars 2009, 16:57

Utilise
$_GET["file"]
au lieu de
$file
http://www.manuelphp.com/php/reserved.variables.get.php

Petit nouveau ! | 8 Messages

06 mars 2009, 17:00

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

Eléphant du PHP | 70 Messages

06 mars 2009, 17:12

if(isset($_GET["file"]))
{
     $file = $_GET['file'];
     if ($file == "addn") 
    { 
          require "addnews.php3"; 
    } 
}

Mammouth du PHP | 2937 Messages

06 mars 2009, 17:14

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;

Mammouth du PHP | 568 Messages

06 mars 2009, 21:36

Rien de plus à dire ^^

Petit nouveau ! | 8 Messages

06 mars 2009, 22:51

C'est nickel merci ! :pouce: