Forum Clubic

Probleme liaison formulaire php à une base de donnée sur phpmysql

Bonjour je viens ici exposer mon probleme apres avoir rechercher tester et dans la grande majorité ne pas avoir compris toujours.

j’ai une base de donnée existente avec une page PageForm.html pour le formulaire et une page enregistrement.php avec une page cnx.inc.php.

les messages d’erreurs :

Notice: Undefined index: case3 in C:wampwwwStageenregistrement.php on line 96
Notice: Undefined index: case4 in C:wampwwwStageenregistrement.php on line 97
Notice: Undefined index: case5 in C:wampwwwStageenregistrement.php on line 98
Notice: Undefined index: case6 in C:wampwwwStageenregistrement.php on line 99
Notice: Undefined index: case7 in C:wampwwwStageenregistrement.php on line 100

( je sais que ces erreurs viennent de mes checkbox elle me renvoient cette erreur lorsqu’elles ne sont pas cochée, quand je les coches dans la saisit de mon formulaire je n’ai plus ces erreurs )

Warning: PDOStatement::execute():SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:wampwwwStageenregistrement.php on line 115

et a savoir que tous mes autres variables ont une valeur mais elles ne sont pas envoyé dans la base de donnée :s

ma page enregistrement.php ( extrait du passage j’ai pas voulu tous vous mettre sachant qu’il fais 400 et quelques lignes …)

96 $adultesfamilles=$_POST[‘case3’];
97 $enfance=$_POST[‘case4’];
98 $jeunesse=$_POST[‘case5’];
99 $epicerie_solidaire=$_POST[‘case6’];
100 $autre=$_POST[‘case7’];

102 $connexion=new PDO(‘mysql:host=localhost;dbname=bdd_cdm’,‘root’,’’); //se connecter a la bdd ici son nom est bdd_cmd
103 try
104 {
105 $req= ‘INSERT INTO activites 106(Num_act,AdultesFamilles,Enfance,Jeunesse,EpicerieSociale,Autre,Numauto_adh)
107 VALUES("",:adultesfamilles,:enfance,:jeunesse,:epiceriesociale,:autre,"")’;// requête SQL
108 $connexion->prepare($req);// insert into entrer des infos dans la bdd
109 $traitement=$connexion->prepare($req);
110 $traitement->bindparam(’:adultesfamille’,$adultesfamilles);
111 $traitement->bindparam(’:enfance’,$enfance);
112 $traitement->bindparam(’:jeunesse’,$jeunesse);
113 $traitement->bindparam(’:epiceriesociale’,$epicerie_solidaire);
114 $traitement->bindparam(’:autre’,$autre);

115 $traitement->execute();
116 $traitement=null;
… }
catch (Exception $e)
{
die(‘Erreur :’.$e->getMessage());
}

ma page PageForm.html :

                         <fieldset>	
				<legend>Activités* : </legend> <!--choix multiple à cocher parmis 5 propositions -->
				<input type="checkbox" name="case3" id="case">Adultes Familles </input>
				<input type="checkbox" name="case4" id="case">Enfance </input>
				<input type="checkbox" name="case5" id="case">Jeunesse </input>
				<input type="checkbox" name="case6" id="case">Epicerie solidaire </input>
				<input type="checkbox" name="case7" id="case">Autre </input><br/>
			</fieldset>	

Merci a vous d’avance en esperant bien exposer mon probleme
Edité le 10/06/2014 à 15:48

Quand le formulaire est une checkbox (ou une radio, etc), $_POST[‘case3’] n’est rempli que si la valeur est cochée.
Donc, il faut tester la présence de $_POST[‘case3’] :

$adultesfamilles=isset($_POST[‘case3’]);

Idem pour le reste.

je vais tester de ce pas merci pour la réponse :wink:

ça fontionne merci mais j’ai un autre soucis :s tous fonctionne les variables ont une valeurs … mais elles ne sont pas envoyé dans la base de donnée aucune erreur de noté seul la liste d’informations validé depuis le formulaire.
Edité le 11/06/2014 à 11:52