Petit script php qui ne marche plus

Statut
N'est pas ouverte pour d'autres réponses.
R

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 ???
 

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)
 

Carambar

Elite
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.
 
1er
OP
R

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 !!
 
X

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']).
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut