Je viens de passer à php 4.xxxx nécéssitant de déclarer les
variables dans les scripts. Mon problème est le suivant : la plupart
de mes scripts sont conçus comme suit :
if ($action = '')
{
traitement 1 + lien avec $action=etape2
}
elseif ($action = 'etape2')
{
etc etc
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
clifden
LF36 wrote:
bonjour,
Je viens de passer à php 4.xxxx nécéssitant de déclarer les variables dans les scripts. Mon problème est le suivant : la plupart de mes scripts sont conçus comme suit :
Je ne pense pas que ce soit php V4 qui exige cela, c'est juste le niveau d'affichage des erreurs qui est paramétré differement. En E_ALL, si tu utilise une variable qui n'a pas été definie, tu te prends par exemple un NOTICE.
if ($action = '')
J'espere que c'est une erreur, et que tu voulais dire " if ($action=='') " ;-)
$action = $_GET['action']; ou $action = $_POST['action'];
Le mieux est de faire $action=isset($_GET['action'])?$_GET['action']:"";
Ou alors de faire une fonction speciale pour cela, que tu utilise pour recuperer les données venant de _GET, _POST, _REQUEST:
function www_get_param($name,$default,$var='GET') { $var='_'.$var; if (isset($$var[$name])) return $$var[$name]; else return $default; }
ensuite pour affecter à id_truc la valeur de $_POST['id_truc'] (-1 si la valeur n'a pas été envoyé), tu fais
$id_truc=www_get_param('id_truc',-1,"POST")*1;
C'est un mal necessaire pour avoir un code plus sécure, qui verifie un minimum les variables envoyées par les internautes (dans l'exemple, je forece en plus la valeur à un entier).
mais toujours un message d'erreur... Que faire ? (en plus j'ai un nombre important de script à modifier)
Et bien bon courage (la solution de facilité est register_globals à ON, mais c'est "pas bien" ;-) ).
Merci d'avance LF36
2 rien.
LF36 wrote:
bonjour,
Je viens de passer à php 4.xxxx nécéssitant de déclarer les
variables dans les scripts. Mon problème est le suivant : la plupart
de mes scripts sont conçus comme suit :
Je ne pense pas que ce soit php V4 qui exige cela, c'est juste le niveau
d'affichage des erreurs qui est paramétré differement. En E_ALL, si tu
utilise une variable qui n'a pas été definie, tu te prends par exemple
un NOTICE.
if ($action = '')
J'espere que c'est une erreur, et que tu voulais dire " if ($action=='')
" ;-)
$action = $_GET['action'];
ou
$action = $_POST['action'];
Le mieux est de faire
$action=isset($_GET['action'])?$_GET['action']:"";
Ou alors de faire une fonction speciale pour cela, que tu utilise pour
recuperer les données venant de _GET, _POST, _REQUEST:
function www_get_param($name,$default,$var='GET') {
$var='_'.$var;
if (isset($$var[$name]))
return $$var[$name];
else
return $default;
}
ensuite pour affecter à id_truc la valeur de $_POST['id_truc'] (-1 si la
valeur n'a pas été envoyé), tu fais
$id_truc=www_get_param('id_truc',-1,"POST")*1;
C'est un mal necessaire pour avoir un code plus sécure, qui verifie un
minimum les variables envoyées par les internautes (dans l'exemple, je
forece en plus la valeur à un entier).
mais toujours un message d'erreur...
Que faire ?
(en plus j'ai un nombre important de script à modifier)
Et bien bon courage
(la solution de facilité est register_globals à ON, mais c'est "pas
bien" ;-) ).
Je viens de passer à php 4.xxxx nécéssitant de déclarer les variables dans les scripts. Mon problème est le suivant : la plupart de mes scripts sont conçus comme suit :
Je ne pense pas que ce soit php V4 qui exige cela, c'est juste le niveau d'affichage des erreurs qui est paramétré differement. En E_ALL, si tu utilise une variable qui n'a pas été definie, tu te prends par exemple un NOTICE.
if ($action = '')
J'espere que c'est une erreur, et que tu voulais dire " if ($action=='') " ;-)
$action = $_GET['action']; ou $action = $_POST['action'];
Le mieux est de faire $action=isset($_GET['action'])?$_GET['action']:"";
Ou alors de faire une fonction speciale pour cela, que tu utilise pour recuperer les données venant de _GET, _POST, _REQUEST:
function www_get_param($name,$default,$var='GET') { $var='_'.$var; if (isset($$var[$name])) return $$var[$name]; else return $default; }
ensuite pour affecter à id_truc la valeur de $_POST['id_truc'] (-1 si la valeur n'a pas été envoyé), tu fais
$id_truc=www_get_param('id_truc',-1,"POST")*1;
C'est un mal necessaire pour avoir un code plus sécure, qui verifie un minimum les variables envoyées par les internautes (dans l'exemple, je forece en plus la valeur à un entier).
mais toujours un message d'erreur... Que faire ? (en plus j'ai un nombre important de script à modifier)
Et bien bon courage (la solution de facilité est register_globals à ON, mais c'est "pas bien" ;-) ).
Merci d'avance LF36
2 rien.
Steuf
bonjour,
Bonjour
Je viens de passer à php 4.xxxx nécéssitant de déclarer les variables dans les scripts. Mon problème est le suivant : la plupart de mes scripts sont conçus comme suit :
Parce que cette variable n'existe pas (register_globals à off je pense)
j'ai essayé en début de script
$action = $_GET['action']; ou $action = $_POST['action'];
mais toujours un message d'erreur... Que faire ?
D'où vient le contenu de cette variable $action ?
(en plus j'ai un nombre important de script à modifier)
Ha bah ça...
Merci d'avance
De rien
LF36
bonjour,
Bonjour
Je viens de passer à php 4.xxxx nécéssitant de déclarer les
variables dans les scripts. Mon problème est le suivant : la plupart
de mes scripts sont conçus comme suit :
Je viens de passer à php 4.xxxx nécéssitant de déclarer les variables dans les scripts. Mon problème est le suivant : la plupart de mes scripts sont conçus comme suit :