Page 1 sur 1

Re-Notice, pas d'affichage avec isset()

Posté : 15 mai 2006, 11:33
par Ish
Bonjour à tous,

je suis encore là avec mes problemes de "Notices" ...

Voilà, j'ai d'autre élement troublant concernant mon application...

Dans mon code j'ai une "Notice qui s'affiche" du style :

Code : Tout sélectionner

Notice: Undefined index: operation in c:\...\p1.php on line 158
Lorsque je fait un isset($_REQUEST['id']) && isset($_REQUEST['operation'])
la notice s'enleve, mais l'application ne marche plus car ...
J'ai un tableau qui reference beaucoup de note et lorsque je clique sur son "id" ... une popup de modification de note s'ouvre avec des champs pré-remplis que l'on peut modifier.

Mais dès que je fais cette condition IF avec les isset (ci-haut), les champs ne sont plus pré-remplis ...
voici une parie du code ;
//Opération et stockage des champs dans la structure note
$note = $form->operation($_REQUEST['id'], $_REQUEST['operation']);

//Affectation des valeurs dans les champs et taille des champs
$champcode_affaire->valeur($note->code_affaire);
$champcode_metier->valeur($note->code_metier);
$champcode_site->valeur($note->code_sites_note);
....
.... // ensemble des champs et propriété de la note

Posté : 15 mai 2006, 11:41
par jojolapine
la problème vient de l'initialisation de tes variables... tu le dits toi -même
Lorsque je fait un isset($_REQUEST['id']) && isset($_REQUEST['operation'])
la notice s'enleve
ça veut dire que tu initialise mal tes variables, ce qui produit par la suite une erreur sur tes methodes...

Posté : 15 mai 2006, 11:58
par Ish
Je comprend pas là ....

Posté : 15 mai 2006, 13:04
par Ish
je comprends pas le coup de
tu initialise mal tes variables, ce qui produit par la suite une erreur sur tes methodes...
Normalement ya pas de probleme puisque si je mets pas de condition "isset()", ça marche très bien !!!

Posté : 15 mai 2006, 14:43
par Ish
Sinon quelle serait la solution pour enlever les NOTICE....

parceque ce sont des indications qui ne sont pas à prendre à la legere mais j'aimerais pouvoir regarder ce que ca donne sans !

Posté : 15 mai 2006, 15:40
par Ryle
Au début de ton script ajoute la commande print_r($_REQUEST);

Elle te permet de voir ce que contient ton objet request. Tu devrais y trouver quelque chose de la forme :

Code : Tout sélectionner

array ( 'id' => 'valeur', 'operation' => 'valeur', ...)
s'il manque les clés "id" ou "operation" c'est que ceux-ci ne sont pas envoyés à ta page. Le isSet() retournera alors la valeur faux. Cela dit, ta méthode operation() fonctionne peut être même si la valeur est absente, il te suffit alors de donner une valeur par défaut à ta variable :
$id = (isSet($_REQUEST['id'])) ? $_REQUEST['id'] : 0;
// si $_REQUEST['id'] est défini alors utilise la valeur de $_REQUEST['id'], sinon utilise 0

Posté : 15 mai 2006, 15:55
par Ish
ok ok ok ... voilà ce que me renvoie le print_r($_REQUEST) :

Code : Tout sélectionner

Array ( [id] => 1 [PHPSESSID] => 5ba4ce1de5f1fb2663d0d839f0c2c46e )
hein hein ...

Posté : 15 mai 2006, 17:05
par Ish
Le probleme ici est que lorsque je passe dans la condition du ISSET(), ça ne marche plus.
Comme si le isset($_REQUEST[]) me renvoyer FAUX ... donc je ne pouvais plus acceder à la fonctionnalité de mes methodes

je comprends pas pourkoi ?