Problème avec formulaire

Fermé
sharky06 - 23 mai 2008 à 17:21
 sharky06 - 24 mai 2008 à 12:22
Bonjour, je suis débutant en codage, et j'essaie de faire un formulaire en html, qui est envoyée vers la bdd.

Tout les variables y sont envoyées, à part celles de menus déroulants, je m'explique, en fait, j'ai fait un tableau, avec en colonnes matin, midi, soir et en ligne lundi, mardi, ...
J'ai associé lundi matin à la variable $lundi1 qui vaut 1 si dispo, et 0 si non dispo, le code ressemble donc à :
<SELECT NAME="lundi1"><OPTION VALUE="0"> Non</OPTION><OPTION VALUE="1"> Oui</OPTION></SELECT>


La connexion à la bdd est établie sans soucis (vu que les autres variables y sont envoyées), et le code de l'action du formulaire (uniquement pour lundi1) est :

if(isset($_POST['lundi1'])) $lundi1 = htmlentities($_POST['lundi1'],ENT_QUOTES);else $lundi1="";

  foreach($_POST as $index => $valeur) {
    $$index = mysql_real_escape_string(trim($valeur));

  
  $sql = "INSERT INTO users VALUES ('$lundi1')";
  $res = mysql_query($sql);
  
}



J'imagine bien qu'il y a un soucis qq part, mais où, je ne sais pas >< si par ailleurs, il y a des failles dans le code, je vous serais gré de me le faire remarquer

Merci d'avance :D

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
23 mai 2008 à 18:55
Bonjour,

if(isset($_POST['lundi1'])){
$lundi1 = htmlentities($_POST['lundi1'],ENT_QUOTES);
}else {

$lundi1="";}

foreach($_POST as $index => $valeur) {
// la tu avais une erreur deux fois $ $$index = mysql_real_escape_string(trim($valeur));
$index = mysql_real_escape_string(trim($valeur));

$sql = "INSERT INTO users VALUES ('$lundi1')";
$res = mysql_query($sql);

}

//en faisant ainsi ton foreach tu balayes tous les champs postés y compris le bouton ENVOI !
//foreach($_POST as $index => $valeur veut dire pour chaque champ poste du formulaire, on fait un couple index(le nom du champ) - valeur
//donc c'est pas bon

je ne sais pas comment est conçue ta table mais pour rentrer les valeurs il faut que tu ai autant de champs par exemple lundi, mardi etc..

$sql = "INSERT INTO users VALUES ('$lundi1','$mardi' etc...)";

mais tu dois avoir d'autres champs dans ta table sinon comment l'utilises tu ?
0
Bah au final, j'ai enlevé le foreach, et ça marche ^^

dans la bdd, j'ai bien autant de champs que de valeurs

Merci beaucoup :p
0