Bonjour à tous,

Avant d'énoncer mon problème, je tiens à préciser que j'ai cherché et re-cherché sur la toile la solution à mon problème. J'ai bien sûr trouvé beaucoup de choses sur "undefined index" assorties de beaucoup de "isset", mais rien qui ne corresponde précisément à ma recherche (ou alors ça m'a échappé ce qui est possible aussi ;-)

Donc :

J'ai un formulaire sur un site web dont les données sont insérées en base via une requête préparée.
Les champs de ce formulaire ne sont pas tous obligatoires.

Ci-dessous le script PHP pour insertion des données :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
<?php
 
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=event_is_yours', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
 
 
$req = $bdd->prepare('INSERT INTO kiwi(nom, prenom, email, fonction, societe, presenceEven, venueAccomp, nomAccomp, prenomAccomp, emailAccomp, situationGeo, moyenTransport, choixHoraireAvion, choixHoraireTrain, intolAlim, exceptAlim, commentaires) VALUES(:nom, :prenom, :email, :fonction, :societe, :presenceEven, :venueAccomp, :nomAccomp, :prenomAccomp, :emailAccomp, :situationGeo, :moyenTransport, :choixHoraireAvion, :choixHoraireTrain, :intolAlim, :exceptAlim, :commentaires)');
$req->execute(array(
	'nom' => $_POST['nom'], 
	'prenom' => $_POST['prenom'],
	'email' => $_POST['email'],
	'fonction' => $_POST['fonction'],
	'societe' => $_POST['societe'],
	'presenceEven' => $_POST['presenceEven'],
	'venueAccomp' => $_POST['venueAccomp'],
	'nomAccomp' => $_POST['nomAccomp'],
	'prenomAccomp' => $_POST['prenomAccomp'],
	'emailAccomp' => $_POST['emailAccomp'],
	'situationGeo' => $_POST['situationGeo'],
	'moyenTransport' => $_POST['moyenTransport']),
	'choixHoraireAvion' => $_POST['choixHoraireAvion'],
	'choixHoraireTrain' => $_POST['choixHoraireTrain'],
	'intolAlim' => $_POST['intolAlim']),
	'exceptAlim' => $_POST['exceptAlim'],
	'commentaires' => $_POST['commentaires']
	));
 
?>
Mon problème est que systématiquement lors de l'exécution de ce script j'ai l'erreur "Notice: Undefined index" sur les lignes 27 et 30 (moyenTransport et intolAlim) lorsque ces 2 champs ne sont pas renseignés (alors qu'ils ne font pas partie des champs obligatoires donc une valeur vide est parfaitement acceptable).

Par ailleurs ce qui est très étonnant c'est que seuls ces 2 champs vides entraînent l'erreur "Undefined index" (le champ "commentaires" par ex ne provoquera pas cette erreur s'il est envoyé vide...)

Je n'en sors pas... Des idées ?

Merci par avance pour votre aide.