Page 1 sur 2

Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 10:39
par diabolo67
Bonjour à tous,

Je fais un stage chez un vétérinaire qui m'a demandé de rajouter une modification sur un formulaire.
Je dois rajouter 10 rubriques. Avec des noms bizarre comme enva1, envl1, etc ...

J'ai commencé par rajouter la ligne dans le tableau html déjà existant, puis dans la table dans la table phpmyadmin, et maintenant j'ai écris ceci :

Code : Tout sélectionner

if (isset ($_POST['valider'])){ //On récupère les valeurs entrées par l'utilisateur : $accept=$_POST['accept']; $structure=$_POST['structure']; $etablissement=$_POST['etablissement']; $adresse=$_POST['adresse']; $cp=$_POST['cp']; $ville=$_POST['ville']; $mail=$_POST['mail']; $site=$_POST['site']; $nbveto=$_POST['nbveto']; $nom1=$_POST['nom1']; $prenom1=$_POST['prenom1']; $mail1=$_POST['mail1']; $enva1=$_POST['enva1'];
Tout fonctionne sauf ceci :
[img]Notice:%20Undefined%20index:%20enva1%20in%20C:\wamp\www\vethica\formulaire_echantillon_puce.php%20on%20line18[/img]

Quelqu'un pourrai t-il m'expliquer pourquoi la rubrique enva1 ne veut pas s'enregistrer ?

Merci d'avance,
Diabolo

Re: Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 10:58
par diabolo67
Cette fois je n'ai plus d'erreur mais rien ne s'enregistre dans ma base !!!

Re: Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 11:00
par macgawel
Bonjour.

Le message t'indique que $_POST['enva1'] n'existe pas...

1. Pour vérifier, tu peux faire un print_r($_POST); en début de script, pour voir le contenu de $_POST.
2. Tu as bien créé le champ dans ton formulaire ?

Re: Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 11:31
par diabolo67
Bonjour macgavel,

Oui dans ma base j'ai bien insérer un champs pour enval1 et dans mon code insert j'ai écris ceci :
$sql = 'INSERT INTO demande VALUES("","'.$accept.'","'.$structure.'","'.$etablissement.'","'.$adresse.'","'.$cp.'","'.$ville.'","'.$mail.'","'.$site.'","'.$nbveto.'","'.$nom1.'","'.$prenom1.'","'.$mail1.'","'.$enva1.'","'.envl1.'")';
Parfois le message ne s'affiche pas, mais dans tous les cas rien ne s'insére dans ma base pour enval1

Re: Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 11:58
par misterflo
Salut,

pour te simplifier la vie, au lieu de mettre des guillemets simple et double de partout, encadre ta requête avec des guillemets double, ensuite les valeurs dans la requête simplement avec des guillemets simple:
$sql = "INSERT INTO demande VALUES('','$accept','$structure','$etablissement','$adresse','$cp','$ville','$mail','$site','$nbveto','$nom1','$prenom1','$mail1','$enva1','$envl1')";
De plus ta dernière valeur n'avait pas de $ ce qui devait poser problème !


Il faut absolument que tes valeurs soient sécurisées avant d'être inséré dans la ta bdd !
- Soit avec une requête preparé en PDO : http://fr2.php.net/manual/fr/book.pdo.php,
- Ou alors avec un mysql_escape_string : http://php.net/manual/fr/function.mysql ... string.php

Re: Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 13:05
par diabolo67
Salut MisterFlo,

J'ai copier coller ton code les mentions enva1 et envl1 fonctionne bien maintenant et tout s'enregistre.

Par contre dès que je rajoute les suivantes, les nouvelles mentions ne veulent plus rentrer !!
$sql = "INSERT INTO demande VALUES('','$accept','$structure','$etablissement','$adresse','$cp','$ville','$mail','$site','$nbveto','$nom1','$prenom1','$mail1','$enva1','$envl1','$envt1','$autres1','$cn1','$bov1','$eq1','$nac1')";
if (isset ($_POST['valider'])){
	//On récupère les valeurs entrées par l'utilisateur :
	$accept=$_POST['accept'];
	$structure=$_POST['structure'];
	$etablissement=$_POST['etablissement'];
	$adresse=$_POST['adresse'];
	$cp=$_POST['cp'];
	$ville=$_POST['ville'];
	$mail=$_POST['mail'];
	$site=$_POST['site'];
	$nbveto=$_POST['nbveto'];
	$nom1=$_POST['nom1'];
	$prenom1=$_POST['prenom1'];
	$mail1=$_POST['mail1'];
	$enva1=$_POST['enva1'];
	$envl1=$_POST['envl1'];
	$envt1=$_POST['envt1'];
	$autres1=$_POST['autres1'];
	$cn1=$_POST['cn1'];
	$bov1=$_POST['bov1'];
	$eq1=$_POST['eq1'];
	$nac1=$_POST['nac1'];

C'est à rien y comprendre !! Et les mentions existe bel et bien dans la base !

Re: Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 14:07
par Mazarini
Bonjour,
...
Par contre dès que je rajoute les suivantes, les nouvelles mentions ne veulent plus rentrer !!
...
Un message d'erreur peut être ?

Re: Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 15:12
par diabolo67
Toujours les mêmes :

undefined structure in C:\wamp\www\vethica\formulaire_echantillon_puce.php on line 7
Undefined index: envt1 in C:\wamp\www\vethica\formulaire_echantillon_puce.php on line 20
Undefined index: autres1 in C:\wamp\www\vethica\formulaire_echantillon_puce.php on line 21
Undefined index: cn1 in C:\wamp\www\vethica\formulaire_echantillon_puce.php on line 22
Undefined index: eq1 in C:\wamp\www\vethica\formulaire_echantillon_puce.php on line 24
Undefined index: nac1 in C:\wamp\www\vethica\formulaire_echantillon_puce.php on line 25
if (isset ($_POST['valider'])){
	//On récupère les valeurs entrées par l'utilisateur :
	$accept=$_POST['accept'];
	$structure=$_POST['structure'];
	$etablissement=$_POST['etablissement'];
	$adresse=$_POST['adresse'];
	$cp=$_POST['cp'];
	$ville=$_POST['ville'];
	$mail=$_POST['mail'];
	$site=$_POST['site'];
	$nbveto=$_POST['nbveto'];
			$sql = 'INSERT INTO demande VALUES("","'.$accept.'","'.$structure.'","'.$etablissement.'","'.$adresse.'","'.$cp.'","'.$ville.'","'.$mail.'","'.$tel.'","'.$site.'"'.$nbveto.'")';

Re: Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 15:15
par diabolo67
zut c'est ce code qui ne fonctionne pas (tenez pas compte du code php du message précédent)
if (isset ($_POST['valider'])){
	//On récupère les valeurs entrées par l'utilisateur :
	$accept=$_POST['accept'];
	$structure=$_POST['structure'];
	$etablissement=$_POST['etablissement'];
	$adresse=$_POST['adresse'];
	$cp=$_POST['cp'];
	$ville=$_POST['ville'];
	$mail=$_POST['mail'];
	$site=$_POST['site'];
	$nbveto=$_POST['nbveto'];
	$nom1=$_POST['nom1'];
	$prenom1=$_POST['prenom1'];
	$mail1=$_POST['mail1'];
	$enva1=$_POST['enva1'];
	$envl1=$_POST['envl1'];
	$envt1=$_POST['envt1'];
	$autres1=$_POST['autres1'];
	$cn1=$_POST['cn1'];
	$bov1=$_POST['bov1'];
	$eq1=$_POST['eq1'];
	$nac1=$_POST['nac1'];
$sql = "INSERT INTO demande VALUES('','$accept','$structure','$etablissement','$adresse','$cp','$ville','$mail','$site','$nbveto','$nom1','$prenom1','$mail1','$enva1','$envl1','$envt1','$autres1','$cn1','$bov1','$eq1','$nac1')";
merci

Re: Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 15:21
par misterflo
Es-tu sur qu'au niveau de ton code HTML tous les champs existent ? Parce que d'après les erreurs non :D

Re: Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 15:54
par diabolo67
bon j'ai revérifier entièrement mon code html,

cette fois plus d'erreur d'afficher mes deux de mes rubriques ne sont pas enregistrer dans ma base !
if (isset ($_POST['valider'])){
	//On récupère les valeurs entrées par l'utilisateur :
	$accept=$_POST['accept'];
	$structure=$_POST['structure'];
	$etablissement=$_POST['etablissement'];
	$adresse=$_POST['adresse'];
	$cp=$_POST['cp'];
	$ville=$_POST['ville'];
	$mail=$_POST['mail'];
	$site=$_POST['site'];
	$nbveto=$_POST['nbveto'];
	$nom1=$_POST['nom1'];
	$prenom1=$_POST['prenom1'];
	$mail1=$_POST['mail1'];
	$enva1=$_POST['enva1'];
	$envl1=$_POST['envl1'];
	$envt1=$_POST['envt1'];
	$autres1=$_POST['autres1'];
	$cn1=$_POST['cn1'];
	$bov1=$_POST['bov1'];
	$eq1=$_POST['eq1'];
	$nac1=$_POST['nac1'];
$sql = "INSERT INTO demande VALUES('','$accept','$structure','$etablissement','$adresse','$cp','$ville','$mail','$site','$nbveto','$nom1','$prenom1','$mail1','$enva1','$envl1','$envt1','$autres1','$cn1','$bov1','$eq1','$nac1')";
            <table width="499" border="0" bgcolor="#F1DAC4">
              <tr>
                <td width="51">Nom</td>
                <td colspan="2"><input type="text" name="nom1"/></td>
                <td width="32"><div align="right">ENVA</div></td>
                <td width="20"><input type="checkbox" name="enva1"/></td>
                <td width="30"><div align="right">ENVL</div></td>
                <td width="20"><input type="checkbox" name="envl1"/></td>
                <td width="26"><div align="right">ENVT</div></td>
                <td width="22"><input type="checkbox" name="envt1"/></td>
                <td width="32"><div align="right">Autres</div></td>
                <td width="22"><input type="checkbox" name="autres1"/></td>
                </tr>
              <tr>
                <td>Pr&eacute;nom</td>
                <td colspan="2"><input type="text" name="prenom1"/></td>
                <td>e-mail</td>
                <td colspan="7"><input type="text" name="mail1"/></td>
                </tr>
              <tr>
                <td>Ann&eacute;e diplome</td>
                <td width="144"><input type="text" name="nom1" maxlength="4"/></td>
                <td width="54">Sp&eacute;cialit&eacute;</td>
                <td><div align="right">CN</div></td>
                <td><input type="checkbox" name="cn1"/></td>
                <td><div align="right">BOV</div></td>
                <td><input type="checkbox" name="bov1"/></td>
                <td><div align="right">EQ</div></td>
                <td><input type="checkbox" name="eq1"/></td>
                <td><div align="right">NAC</div></td>
                <td><input type="checkbox" name="nac1"/></td>
                </tr>
              <tr>
            </table>
Il s'agit de nom1, prenom1 et mail1 et le reste fonctionne

Re: Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 16:12
par misterflo
Vérifie que ces variables ne sont pas vides avant de les mettre dans la requête SQL.
var_dump($nom1);
var_dump($prenom1);
var_dump($mail1);

Re: Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 16:38
par diabolo67
:D Je pourrais pas vous dire pourquoi mais après un dump sur mes variables, j'ai réécris celle qui ne collais pas et maintenant tout fonctionne.

Merci à tous ceux qui ont pris un peu de leur temps pour me venir en aide.*

Bonne fin d'après midi à tous !

Re: Erreur Undefined index incompréhensible

Posté : 05 mai 2011, 17:38
par Mazarini
Bonjour,

Pour les checkbox, la variable n'est renseignée que si celle-ci est cochée. Il faut donc faire $toto = isset($_POST['toto']);

Re: Erreur Undefined index incompréhensible

Posté : 06 mai 2011, 09:20
par diabolo67
Merci Mazarini pour ta remarque.

Il me reste encore une petite question, dans ma base de donnée les enregistrements concernant les checkbox faut-il les mettre en type boolean ou est ce que je peux les garder en char taille 1 ?

merci,
diabolo