OVH Cloud OVH Cloud

Declaration de variable

8 réponses
Avatar
ska
bonjour,

comment faire une déclaration de variable ?

mon message d'erreur :

"Notice: Undefined variable: page in c:\..\index.php on line 40"

ligne :

"if($page == 1){..."

j'ai regardé sur nexen, les docs ... je comprends que c'est pour des
raisons de sécurité mais ne trouve aucune solution.

help !!!! merci pour moi le novice ...

ska

8 réponses

Avatar
ftc
bonjour,

comment faire une déclaration de variable ?

mon message d'erreur :

"Notice: Undefined variable: page in c:..index.php on line 40"

ligne :

"if($page == 1){..."




La variable $page n'a pas été définie avant son utilisation, elle
n'existe pas, l'instruction $page == 1 n'a donc aucun sens.

D'ou est sensée provenir $page ?

Si c'est d'une variable POST ou GET, il faut faire:
if ( $_GET['page'] == 1 ) ou bien if ( $_POST['page'] == 1 )

Avatar
CrazyCat
ska wrote:
"Notice: Undefined variable: page in c:..index.php on line 40"
"if($page == 1){..."


A priori, ton $page vient de l'url et register_globals doit être à off.
Tu dois donc commencer par faire:
<?
$page = $_REQUEST["page"];
if ($page == 1) {...
?>

--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.crazy-irc.net

Avatar
Vincent Lascaux
"if($page == 1){..."


Si le register global est à off, il faut que tu fasses $page = GET['page'];

J'imagine que c'est un script qui sera appelé avec un parametre page en GET.
Il faut que tu te demandes quoi faire si le parametre n'est pas passé (on
appelle le script avec l'adresse index.php et pas index.php?page=1).

Dans ce cas, tu peux afficher une erreur (if(!isset($page)) { die "Il faut
spécifier la page"; }) ou tu peux vouloir afficher la page 0 ou 1
(if(!isset($page)) { $page = 0; })

--
Vincent

PS: si la question est à coté de la plaque, il faudrait que tu donnes un peu
plus de détails

Avatar
ska
ok, je vais essayer çà, çà me parait bon ...

quand on arrive sur la page index.php, la variable 'page' n'est pas
définie. puis au niveau d'un lien, là la variable 'page' reçoit une
valeur (en l'occurrence ici '1') :
if($page == 1){
include("mapage.php");
}

sous l'ancienne version, cela fonctionnait très bien et donc
m'affichait 'mapage.php' dans le corps de la page index.php

donc je vais essayer 'if ( $_POST['page'] == 1 )'

merci

ska
Avatar
ska
Avatar
ska
j'ai trouvé avec vos solutions diverses ceci :

if(isset($_REQUEST['var'])){$var=$_REQUEST['var'];}else{$var='';}

je mets donc cette ligne pour toute variable et çà fonctionne

merci encore à tous

ska
Avatar
Julien Fontanet
bonjour,

comment faire une déclaration de variable ?

mon message d'erreur :

"Notice: Undefined variable: page in c:..index.php on line 40"

ligne :

"if($page == 1){..."

j'ai regardé sur nexen, les docs ... je comprends que c'est pour des
raisons de sécurité mais ne trouve aucune solution.

help !!!! merci pour moi le novice ...

ska


Si error_reporting = E_ALL dans la configuration de PHP, il est
indispensable de vérifier l'existence d'une variable avant de tenter de
la lire avec la fonction isset !!!
On peut vérifier l'existence de plusieurs variables en même temps :
isset($var1, $var2, ...).

if (isset($_GET['page']) && $_GET['page'] == 1)
{
...
}
else
{
...
}

Avatar
__marc.quinton__
ska wrote:
if(isset($_REQUEST['var'])){$var=$_REQUEST['var'];}else{$var='';}

je mets donc cette ligne pour toute variable et çà fonctionne



tu aurais peut-etre intéret a ecrire une fonction :

$var = get_var('nom_variable', 'valeur_par_defaut');

c'est plus lisible, et ca permet ce genre de pirouette :

if($var = get_var('test_me', false)){
# blabla ...
} else
# autre blabla

d'autre part, tes scripts ne seront pas impactés quand
l'acces au variables changera une n'ieme fois.