undefined index variable ?

Invité
Invité n'ayant pas de compte PHPfrance

23 janv. 2007, 15:49

Bonjour,

j'ai un formulaire d'inscription :

extrait :
<form method='post' action='detect.php' enctype='multipart/form-data'>	
	<table width="400" border="0" align="center">
	<tr>
	<td><label for="pseudo"><font color="#ff3300">* </font>Pseudo : </label></td>
	<td><input name="pseudo" type="text" maxlength="15" id="pseudo"  /></td>
	</tr>
et je récupère le pseudo de cette facon dans la page detect.php :
$pseudo=formulaires($_POST['pseudo']);
Si je ne rempli pas le champ pseudo de mon formulaire, je tombe sur l'echo que j'ai défini si aucun pseudo n'est choisi mais avec une erreur ?
Notice: Undefined index: pseudo
vous n'avez pas choisi de pseudo
Comment corriger cela ?

merci

Invité
Invité n'ayant pas de compte PHPfrance

23 janv. 2007, 16:20

ok,je me répond a moi même :lol:

en faite,c'est pas grave !

juste par parce que je ne vérifie pas avec isset !

etant donner que cela fonctionne sans problème, j'ai rajouter @ devant $_post !

résolu,merci au modérateur qui passera... :wink:

lux
Eléphant du PHP | 372 Messages

23 janv. 2007, 16:25

C'est ce que j'allais dire, et de nous montrer le code qui traite la requête :wink:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 janv. 2007, 17:21

Je ne suis pas fan des @ dans le code... je trouve dommage de devoir cacher une erreur ou un avertissement, alors qu'il suffit d'un peu de rigueur pour la corriger.
Et le jour où la page ne fonctionne plus pour une raison ou pour une autre, il y aura tellement d'arobase dans le code que l'on passera 3 jours à trouver laquelle il faut enlever pour savoir ce qui fait planter le script...

Dans ton cas, le test est simple. Le message d'erreur signal que l'index "pseudo" que tu essayes d'utiliser dans $_POST n'est pas défini. Il te suffit donc de vérifier s'il existe avant de l'utiliser, par exemple :
// si la variable n'est pas définie OU si la variable est vide
if ( !isSet($_POST['pseudo']) || empty($_POST['pseudo']) ) {
  echo "vous n'avez pas choisi de pseudo";
}
else {
  ...
}
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...