Bonjours / Bonsoir à tous !
Actuellement entrain d'écrire une page afin de faire des sessions au préalablement bien préparer sur papier comme me l'a conseiller Jreaux62, je suis entrain de perdre espoir à ce que mon code fonctionne et ce n'est pas histoire d'avoir "essayais" :
J'ai donc une formulaire avec à l'intérieur un tableau, jusque l'a rien de compliquer :
Sur on autre page à la validation du formulaire, je récupère ces valeurs ( J'ai bien penser à mettre les nom en tableau avec deux crochets après ) grâce au foreach :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 <form method="POST" id="formadd" action="Createtabadd.php" name="form"> <div id="sForm" class="sForm sFormPadding"> <table class="flatTable" table border="0" CELLSPACING="0" > <tr class="titleTr"> <td class="titleTd">Ajouter des groupes ainsi que leurs possibilitées</td> <td colspan="4"></td> <td class="plusTd2 button"></td> <td class="plusTd4 button"></td> <td class="plusTd1 button"></td> </tr> <tr class="headingTr"> <td><center>Nom du groupe</center></td> <td><center>Ajouter un capteur</center></td> <td><center>Modifier un capteur</center></td> <td><center>Supprimer un capteur</center></td> <td><center>Ajouter un groupe</center></td> <td><center>Modifier un groupe</center></td> <td><center>Supprimer un groupe</center></td> <td><center>Ajouter un utilisateur</center></td> <td><center>Modifier un utilisateur</center></td> <td><center>Supprimer un utilisateur</center></td> </tr> <tr id="sformadd"> <td><input type="text" name="nom[]" size="15" id="text0" value="" class="remplit" maxlength="20"><br></td> <td><select name="ajouter_capt[]" id="ajouter_capt"> <option value="Oui">Oui</option> <option value="Non">Non</option> </select></td> <td><select name="modifier_capt[]" id="modifier_capt"> <option value="Oui">Oui</option> <option value="Non">Non</option> </select></td> <td><select name="supprimer_capt[]" id="supprimer_capt"> <option value="Oui">Oui</option> <option value="Non">Non</option> </select></td> <td><select name="ajouter_group[]" id="ajouter_group"> <option value="Oui">Oui</option> <option value="Non">Non</option> </select></td> <td><select name="modifier_group[]" id="modifier_group"> <option value="Oui">Oui</option> <option value="Non">Non</option> </select></td> <td><select name="supprimer_group[]" id="supprimer_group"> <option value="Oui">Oui</option> <option value="Non">Non</option> </select></td> <td><select name="ajouter_user[]" id="ajouter_user"> <option value="Oui">Oui</option> <option value="Non">Non</option> </select></td> <td><select name="modifier_user[]" id="modifier_user"> <option value="Oui">Oui</option> <option value="Non">Non</option> </select></td> <td><select name="supprimer_user[]" id="supprimer_user"> <option value="Oui">Oui</option> <option value="Non">Non</option> </select></td> </tr> </table> </div> </form>
Ce code fonctionne très bien :
Seulement pour l'ajout de mes sessions je suis obligé de rajouter cela et j'aimerais ne pas avoir à le changer :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 if(!empty($_POST['nom']) ){ // pour CHAQUE LIGNE : // on va ICI boucler sur l'array() "nom" : foreach( $_POST['nom'] as $ii => $val ) { // $ii est l'index de CETTE ligne de l'array $_POST['nom'] // comme CHAQUE array() contient le même nombre de valeurs, $ii est AUSSI l'index des autres array() pour CETTE ligne : // pour CHAQUE champs : récupération des valeurs de la ligne + protection contre injection SQL ! if(isset($_POST['nom'])) $val_nom = mysql_real_escape_string($_POST['nom'][$ii]); // ou, ICI : mysql_real_escape_string($val); else $val_nom="nom"; if(isset($_POST['ajouter_capt'])) $val_id = mysql_real_escape_string($_POST['ajouter_capt'][$ii]); else $val_id="ajouter_capt"; if(isset($_POST['modif_capt'])) $val_type = mysql_real_escape_string($_POST['modif_capt'][$ii]); else $val_type="modif_capt"; if(isset($_POST['supp_capt'])) $val_gr = mysql_real_escape_string($_POST['supp_capt'][$ii]); else $val_gr="supp_capt"; if(isset($_POST['ajouter_group'])) $val_addgr = mysql_real_escape_string($_POST['ajouter_group'][$ii]); else $val_gr="ajouter_group"; if(isset($_POST['modifier_group'])) $val_user = mysql_real_escape_string($_POST['modifier_group'][$ii]); else $val_gr="modifier_group"; if(isset($_POST['supprimer_group'])) $val_user = mysql_real_escape_string($_POST['supprimer_group'][$ii]); else $val_gr="supprimer_group"; if(isset($_POST['ajouter_user'])) $val_user = mysql_real_escape_string($_POST['ajouter_user'][$ii]); else $val_gr="ajouter_user"; if(isset($_POST['modifier_user'])) $val_user = mysql_real_escape_string($_POST['modifier_user'][$ii]); else $val_gr="modifier_user"; if(isset($_POST['supprimer_user'])) $val_user = mysql_real_escape_string($_POST['supprimer_user'][$ii]); else $val_gr="supprimer_user"; // pour CETTE ligne, tous les champs sont obligatoires (doivent être remplis) if(!empty($val_nom) ){ // pour CETTE ligne, on écrit la requête sql $sql_insert = "INSERT INTO `permissions` ( `nom`, `ajouter_capt`, `modifier_capt`, `supp_capt`, `ajouter_gr`, `ajouter_user` ) VALUES ( '$val_nom', '$val_id', '$val_type', '$val_gr', '$val_addgr', '$val_user' )"; // pour CETTE ligne, on INSERE les informations du formulaire dans la table mysql_query($sql_insert) or die('Erreur SQL !'.$sql_insert.'<br>'.mysql_error()); } } }
J'ai alors réécrit le code afin de faire fonctionner cela mais après des essais, des Var_dump infinissables, des recherches infructueuses , je ne trouve pas la solution
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 if(isset($_POST['Nom'])) // Si le formulaire a été validé, on peut effectuer les actions PHP { $nom = $_POST['Nom']; // Le nom du groupe if( $_POST['ajouter_capt'] == 'ajouter_capt_oui') // Si dans le formulaire, on a indiqué que ce groupe pouvait ajouter un article... { $droits |= ajouter_capteur; // On ajoute la permission dans la variable $droits } ## Mêmes actions ci-dessous avec Modifier un article et Supprimer un article ## if( $_POST['modifier_capt'] == 'modifier_capt') { $droits |= modifier_capteur; } if( $_POST['supprimer_capt'] == 'supprimer_capt_oui') { $droits |= supprimer_capteur; } if( $_POST['ajouter_group'] == 'ajouter_group_oui') { $droits |= ajouter_groupe; } if( $_POST['modifier_group'] == 'modifier_group_oui') { $droits |= modifier_groupe; } if( $_POST['surpprimer_group'] == 'supprimer_group_oui') { $droits |= supprimer_groupe; } if( $_POST['ajouter_user'] == 'ajouter_user_oui') { $droits |= ajouter_user; } if( $_POST['modifier_user'] == 'modifier_user_oui') { $droits |= modifier_user; } if( $_POST['surpprimer_user'] == 'supprimer_user_oui') { $droits |= supprimer_user; } $requete = 'INSERT INTO permissions(nom, permissions) VALUES ("'.$nom.'", "'.@$droits.'")'; // On prépare la requête, ça va ajouter les permissions stockées dans $droits, ainsi que le nom $ex_requete = mysql_query($requete)or die(mysql_error()); // On exécute la requête ou on affiche une erreur if($ex_requete) echo 'Le groupe a bien été ajouté !<br />'; // Si c'est OK, on affiche un message disant que c'est bon else echo 'Le groupe n\'a pu être ajouté !<br />'; // Sinon, on en affiche un disant que ce n'est pas bon... }
Voici le code PHP en entier :
Ais-je le "droit" de faire :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113 if(isset($_POST['nom'])) // Si le formulaire a été validé, on peut effectuer les actions PHP { foreach( $_POST['nom'] as $ii => $val ) { $nom = $_POST['nom']; // Le nom du groupe if( $_POST['ajouter_capt'] == 'ajouter_capt_oui') // Si dans le formulaire, on a indiqué que ce groupe pouvait ajouter un article... { $droits |= ajouter_capteur; // On ajoute la permission dans la variable $droits } ## Mêmes actions ci-dessous avec Modifier un article et Supprimer un article ## if( $_POST['modifier_capt'] == 'modifier_capt') { $droits |= modifier_capteur; } if( $_POST['supprimer_capt'] == 'supprimer_capt_oui') { $droits |= supprimer_capteur; } if( $_POST['ajouter_group'] == 'ajouter_group_oui') { $droits |= ajouter_groupe; } if( $_POST['modifier_group'] == 'modifier_group_oui') { $droits |= modifier_groupe; } if( $_POST['surpprimer_group'] == 'supprimer_group_oui') { $droits |= supprimer_groupe; } if( $_POST['ajouter_user'] == 'ajouter_user_oui') { $droits |= ajouter_user; } if( $_POST['modifier_user'] == 'modifier_user_oui') { $droits |= modifier_user; } if( $_POST['surpprimer_user'] == 'supprimer_user_oui') { $droits |= supprimer_user; } $requete = 'INSERT INTO permissions(nom, permissions) VALUES ("'.$nom.'", "'.@$droits.'")'; // On prépare la requête, ça va ajouter les permissions stockées dans $droits, ainsi que le nom $ex_requete = mysql_query($requete)or die(mysql_error()); // On exécute la requête ou on affiche une erreur if($ex_requete) echo 'Le groupe a bien été ajouté !<br />'; // Si c'est OK, on affiche un message disant que c'est bon else echo 'Le groupe n\'a pu être ajouté !<br />'; // Sinon, on en affiche un disant que ce n'est pas bon... } // pour TOUTES LES lignes : // on vérifie que les array() ne sont pas vides (qu'au moins UNE ligne du tableau soit remplie) if(!empty($_POST['nom']) ){ // pour CHAQUE LIGNE : // on va ICI boucler sur l'array() "nom" : // $ii est l'index de CETTE ligne de l'array $_POST['nom'] // comme CHAQUE array() contient le même nombre de valeurs, $ii est AUSSI l'index des autres array() pour CETTE ligne : // pour CHAQUE champs : récupération des valeurs de la ligne + protection contre injection SQL ! if(isset($_POST['nom'])) $val_nom = mysql_real_escape_string($_POST['nom'][$ii]); // ou, ICI : mysql_real_escape_string($val); else $val_nom="nom"; if(isset($_POST['ajouter_capt'])) $val_id = mysql_real_escape_string($_POST['ajouter_capt'][$ii]); else $val_id="ajouter_capt"; if(isset($_POST['modif_capt'])) $val_type = mysql_real_escape_string($_POST['modif_capt'][$ii]); else $val_type="modif_capt"; if(isset($_POST['supp_capt'])) $val_gr = mysql_real_escape_string($_POST['supp_capt'][$ii]); else $val_gr="supp_capt"; if(isset($_POST['ajouter_group'])) $val_addgr = mysql_real_escape_string($_POST['ajouter_group'][$ii]); else $val_gr="ajouter_group"; if(isset($_POST['modifier_group'])) $val_user = mysql_real_escape_string($_POST['modifier_group'][$ii]); else $val_gr="modifier_group"; if(isset($_POST['supprimer_group'])) $val_user = mysql_real_escape_string($_POST['supprimer_group'][$ii]); else $val_gr="supprimer_group"; if(isset($_POST['ajouter_user'])) $val_user = mysql_real_escape_string($_POST['ajouter_user'][$ii]); else $val_gr="ajouter_user"; if(isset($_POST['modifier_user'])) $val_user = mysql_real_escape_string($_POST['modifier_user'][$ii]); else $val_gr="modifier_user"; if(isset($_POST['supprimer_user'])) $val_user = mysql_real_escape_string($_POST['supprimer_user'][$ii]); else $val_gr="supprimer_user"; // pour CETTE ligne, tous les champs sont obligatoires (doivent être remplis) if(!empty($val_nom) ){ // pour CETTE ligne, on écrit la requête sql $sql_insert = "INSERT INTO `permissions` ( `nom`, `ajouter_capt`, `modifier_capt`, `supp_capt`, `ajouter_gr`, `ajouter_user` ) VALUES ( '$val_nom', '$val_id', '$val_type', '$val_gr', '$val_addgr', '$val_user' )"; // pour CETTE ligne, on INSERE les informations du formulaire dans la table mysql_query($sql_insert) or die('Erreur SQL !'.$sql_insert.'<br>'.mysql_error()); } } } ?>
Par éxemple ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if(isset($_POST['ajouter_group'] == 'ajouter_capt_oui')) $val_addgr = mysql_real_escape_string($_POST['ajouter_group'][$ii]); else $val_gr="ajouter_group";
Merci pour votre aide !
Partager