Petit script php qui ne marche plus

Discussion dans 'Web, design' créé par radical edward, 21 Mai 2004.

Statut de la discussion:
Fermée.
  1. Online
    radical edward ex membre
    lorsque je mets ce script dans ma page:

    <?
    if ($_GET[action]=="")
    {
    include("home.php");
    }
    else
    {
    $lien=$_GET[action].".php";
    include("$lien");
    }
    ?>

    au chargement de celle ci j'obtiens:
    Notice: Use of undefined constant action - assumed 'action' in c:\windows\bureau\product\avatars-studio\index.php on line 27

    Notice: Use of undefined constant action - assumed 'action' in c:\windows\bureau\product\avatars-studio\index.php on line 33

    plus le contenu du fichier home.php

    comment faire pour que les "Notice" n'apparaissent plus ???
    radical edward, 21 Mai 2004
    #1
  2. Offline
    MbK_ Etudjant
    il faut que tu testes en ligne non?
    met le sur ton ftp et regarde si ca marche (j'y connais rien en php)
    MbK_, 22 Mai 2004
    #2
  3. Offline
    Carambar He once forgot how to cry
    Mets la variable entre apostrophes ainsi :

    Code:
    $_GET['action']
    P.S : Le else est assez dangereux dan le sens où il permettrais d'explorer le site complet. J'ajouterais des conditions plus précises si j'étais toi.
    Carambar, 22 Mai 2004
    #3
  4. Online
    radical edward ex membre
    En fait, ca ne marche toujours pas, il y a toujours un probleme au niveaux de la premiere variable
    Notice: Undefined index: action in c:\windows\bureau\product\avatars-studio\index.php on line 31
    <?
    if ($_GET['action']=="")
    {
    include("include/roto.php");
    }
    else
    {
    $lien=$_GET['action'].".php";
    include("include/$lien");
    }
    ?>
    j'ai essayé avec "is_null", est la ca marche ya plus de notice, mais la variable action dans un lien ne marche plus !!
    radical edward, 22 Mai 2004
    #4
  5. Online
    xXFMCXx ex membre
    Ce n'est pas une erreur au sens propre, c'est une notice.
    On te la signale pour éviter une éventuelle faille. On te signale simplement que tu n'as pas défini la variable avant de la tester, ce qui fait qu'un utilisateur pourrait réussir à la modifier afin de changer l'exécution de ton script. Dans ton cas, ce n'est pas grave puisque tu prends la variable en GET.

    Pour éviter de recevoir ce message à l'avenir, modifie ton script comme ceci :

    <?php
    $action = !empty($_GET['action']) ? $_GET['action'] : "";
    if (!empty($action))
    {
    include("include/roto.php");
    }
    else
    {
    $lien=$action.".php";
    include("include/$lien");
    }
    ?>

    Petite remarque, quand tu utilises des Array ($var[]), met toujours des apostrophes ou des guillements au niveau de la clé, sinon tu risques d'avoir des bugs ($var['cle']).
    xXFMCXx, 26 Mai 2004
    #5
Statut de la discussion:
Fermée.