Page 1 sur 1
wamp et test sur variable
Posté : 23 déc. 2008, 15:28
par zoubi
Bonjour,
Je viens de télécharger la dernière version de wamp et depuis j'ai plein d'erreurs, tout particulièrement quand il ne reconnait pas les variables.
Sur un formulaire j'ai par exemple plusieurs cases à cocher. J'en coche 2 sur 5, lorsque je valide mon formulaire j'ai systhématiquement l'erreur Notice: Undefined index: qui apparaît pour les cases non cochées.
Il y a quelque chose de particulier avec le dernier wamp ? Y a t-il une solution autre que de tester chaque variable ?
Merci
Posté : 23 déc. 2008, 15:38
par guilt92
Bonjour,
La portion de code ou tu vérifies les variables pourraient nous aider.
Si tu utilises la fonction isset() ou !empty() avant de tester la valeur d'une variable tu ne devrais pas avoir d'erreur...
Je ne pense pas qu il y ait quelque chose de particulier avec la derniere version, par contre tu avais peut etre desactivé les warning sur l ancienne non ? mais la meilleure solution est de corriger ton code plutot que de ne pas afficher les erreurs

Posté : 23 déc. 2008, 15:47
par Ryle
C'est simplement une question de configuration. En l'occurence, la gestion des erreurs t'indique ici les avertissements (ou Notice) qui devaient être désactivés dans ta précédente config.
Il n'y a pas d'erreur en soit, simplement des notifications de php qui t'informe du fait que tu fais appel à des variables sans vérifier si celle-ci existent au préalable ou pas.
Donc solution 1, modifier le niveau d'erreur de ton serveur pour qu'il ne répertories pas les avertissements (soit dans le php.ini, soit avec la fonction error_reporting() : E_ALL ^ E_NOTICE)
Solution 2, déclarer les variables avant de les utiliser, ou dans ton cas, tester si une variable/index existe avant d'y faire appel. En effet, quand une case n'est pas cochée, la valeur de celle-ci n'est pas envoyée au serveur, et du coup, pas de $_POST['ma_case'] (php t'indique que l'index 'ma_case' n'est pas défini). Tu peux tester si une variable existe avec isSet() ou bien avec empty() (qui te permet également de savoir si celle-ci est vide)
Posté : 23 déc. 2008, 15:52
par Invité
Non je n'ai pas désactivé les erreurs et il n'y en avait aucune jusqu'à présent.
Exemple :
Formulaire :
Code : Tout sélectionner
<input type="checkbox" name="1" value="1" id="1"><label for="1">1</label>
<input type="checkbox" name="2" value="2" id="2"><label for="2">2</label>
<input type="checkbox" name="3" value="3" id="3"><label for="3">3</label>
<input type="checkbox" name="4" value="4" id="4"><label for="4">4</label>
<input type="checkbox" name="5" value="5" id="5"><label for="5">5</label>
$res=$_POST['1']."*".$_POST['2']."*".$_POST['3']."*".$_POST['4']."*".$_POST['4'];
echo $res;
Si je coche 1 et 2 j'ai les erreurs undefined pour 3, 4 et 5 après soumission du formulaire.
Merci

Posté : 23 déc. 2008, 15:57
par Invité
Merci ryle, quelle solution préconises-tu pour le futur ?