Bonjour,
je fais un site et je me connecte pour pouvoir effectuer certaines opérations. Mais 2 de mes pages posent problème.
1-) Je choisis une personne dans une liste (chercher_user.php) et je veux afficher toutes les informations la concernant (fiche_user.php). Lorsque je passe à fiche_user.php, je suis automatiquement déconnectée. Je ne comprend pas car j'ai une autre page (afficher_users.php) qui fait appel à fiche_acteur.php et quand je passe de afficher_users.php à fiche_acteur.php il n'y a aucun problème, je reste bien connectée.
2-)Je veux enregistrer un nouvel acteur (ajouter_user.php) et quand je clique sur valider, je me déconnecte et la page se recharge.
voilà les codes:
chercher_user.php
je l'avais fait d'abord en mettant <form method="post" action="fiche_user.php" ....>, puis j'ai changé quand j'ai constaté l'erreur, mais ça persiste.
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 <?php session_start(); include_once ("fonctions.php"); include_once ("fonctionsjs.php"); if ((!isset($_SESSION['mail'] ))&& (!isset($_SESSION['pwd']))) { $lebas=1; } else { $lebas=2; } entete("Rechercher un acteur", $lebas); connexion(); /*******************************************************************************************/ ?> <form method="post" id="form" id="etat"> <fieldset class="absence_personne"> <legend> Rechercher une personne </legend> <table cellspacing=20 cellpadding=2 align="center"> <span id="erreur"> </span> <tr> <label> <td> Choisir un acteur </td> <td> <font color="red" size=2> * </font> <select name="personne" id="etat"> <option> </option> <?php $val =''; liste_nom("tout", $val); ?> </select> </td> </label> </tr> <tr> <label> <td> </td> <td align="center"> <input type="submit" name="sauver" value="Chercher" onclick="return verifier_ajout();" /> <a href="index.php" style="text-decoration: none"> <input type="submit" name="annulation" value="Annuler" /> </a></td> <!-- le input de 'annuler' se comportait de la mm façon que 'chercher', j'ai donc été obligée de mettre un <a href> pour retourner à l'accueil --> </label> </tr> </table> </fieldset> </form> <?php if (isset($_POST['sauver'])) { $acteur = verifier_isset('personne'); if(empty($acteur)) echo '<script ttype="text/javascript"> alert("Veuillez choisir un acteur"); </script>'; else header('location: fiche_user.php?personne='.$acteur.''); } ?> </div> </body> </html>
Le code de fiche_user.php:
celui de ajouter_user.php:
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188 <?php session_start(); include_once ("fonctions.php"); include_once ("fonctionsjs.php"); connexion(); //vérification de la session if ((!isset($_SESSION['mail'] ))&& (!isset($_SESSION['pwd']))) { $lebas=1; } else { $lebas=2; } entete("Fiche acteur", $lebas); if(isset($_GET['personne'])) //récupération de la personne de la page afficher_users.php à travers <a href...> $personne = $_GET['personne']; else $personne = verifier_isset("personne"); if (!empty($personne)) { echo '<div class="div1">'; //recherche de l'identifiant d ela personne $lid1 = mysql_query('select id, profil, email, telephone, acteur from personne where acteur="'.$personne.'"'); if ($lid2=mysql_fetch_assoc($lid1)) { echo '<table cellspacing=40 cellpadding=10 align="center" id="tab_acteur"> <caption> <b><u>Informations personnelles</u></b> <br/><br /> </caption>'; $identif = $lid2['id']; //récupération de l'id pour les comparaisons ultérieures echo '<tr> <td> Acteur </td> <td>'.$lid2['acteur'].'</td> </tr>'; echo '<tr> <td> Profil </td> <td>'.$lid2['profil'].'</td> </tr>'; echo '<tr> <td> E-mail </td> <td>'.$lid2['email'].'</td> </tr>'; echo '<tr> <td> Téléphone </td> <td>'.$lid2['telephone'].'</td> </tr>'; //compte le nombre de fois que la personne apparait dans la table absence $absence = mysql_query('select COUNT(*) from absences where id="'.$identif.'"'); $nb_absence = mysql_fetch_assoc($absence); if (!empty($nb_absence)) echo '<tr> <td> Nombre d\'absences </td> <td>'.$nb_absence['COUNT(*)'].'</td> </tr>'; else if (empty($nb_absence)) echo '<tr> <td> Nombre d\'absences </td> <td> 0 </td> </tr>'; //compte le nombre de fois que la personne apparait dans la table activite $activites = mysql_query('select COUNT(*) from activite where id_acteur_pack="'.$identif.'" or id_acteur_qualif="'.$identif.'"'); $nb_activites = mysql_fetch_assoc($activites); if (!empty($nb_activites)) echo '<tr> <td> Nombre d\'activités </td> <td>'.$nb_activites['COUNT(*)'].'</td> </tr>'; else echo '<tr> <td> Nombre d\'activités </td> <td> 0 </td> </tr>'; //compte le nombre de fois que la personne apparait dans la table demande $demandes = mysql_query('select COUNT(*) from demande where id_acteur_cpi="'.$identif.'"'); $nb_demandes= mysql_fetch_assoc($demandes); if (!empty($nb_demandes)) echo '<tr> <td> Nombre de demandes </td> <td>'.$nb_demandes['COUNT(*)'].'</td> </tr>'; else echo '<tr> <td> Nombre de demandes </td> <td> 0 </td> </tr>'; echo '</table> <br/><br/>'; } echo '<pre align="center"> <a href="modifier_infos_user.php?personne='.$identif.'" >Modifier</a> <a href="chercher_user.php">Retour recherche</a> <a href="afficher_users.php">Liste des acteurs</a> </pre>'; echo "</div>"; echo "<div class='div2'>"; // ses absences $lesabsences = mysql_query('SELECT nature, date_debut, date_fin FROM absences WHERE id="'.$identif.'"'); $ligne_ab = mysql_num_rows($lesabsences); echo '<p style="text-align: center;"> <b><u>Absences</u></b> </p>'; if(empty($ligne_ab)) //si l'acteur n'est pas dans la table absence echo "<p align='center'> Aucune absence enregistrée </p>"; else { echo '<table cellspacing=20 align="center" id="tab_acteur"> <th> Absences </th> <th> Début </th> <th> Fin</th>'; while($resultat1 = mysql_fetch_assoc($lesabsences)) { echo '<tr align="center">'; echo '<td>'.$resultat1['nature'].'</td>'; $ddebut = formater_date($resultat1['date_debut']); $dfin = formater_date($resultat1['date_fin']); echo '<td>'.$ddebut.'</td>'; echo '<td> '.$dfin.'</td>'; echo '</tr>'; } } echo '</table> <br/><br/>'; echo '</div>'; echo '<div class="div3">'; //activités dans lesquelles il figure $activite = mysql_query('SELECT code_application, version_application, TM, version_TM, type_activite FROM activite WHERE id_acteur_pack="'.$identif.'" or id_acteur_qualif="'.$identif.'"'); $ligne_ac = mysql_num_rows($activite); echo '<p style="text-align: center;"> <b><u>Projets</u></b> </p>'; if(empty($ligne_ac)) //si l'acteur n'est pas dans la table activité echo '<p align="center"> Vous n\'avez travaillé sur aucun projet </p>'; else { echo '<table cellspacing=2 cellpadding=10 align="center" id="tab_acteur"> <th> Application </th> <th> Code </th> <th> Version </th> <th> Module</th> <th> Version module </th> <th> Etat module </th> <th> Activité </th>'; while($resultat2 = mysql_fetch_assoc($activite)) { echo '<tr align="center">'; echo '<td>'. get_application($resultat2['code_application']).'</td>'; //nom de l'application echo '<td>'.$resultat2['code_application'].'</td>'; echo '<td>'.$resultat2['version_application'].'</td>'; echo '<td>'.$resultat2['TM'].'</td>'; echo '<td>'.$resultat2['version_TM'].'</td>'; echo '<td>'.$resultat2['type_activite'].'</td>'; echo '</tr>'; } echo '</table> <br/><br/>'; } echo '</div>'; echo '<div class="div4">'; //demandes par lesquelles l'acteur est concerné $demande = mysql_query('SELECT libelle, application, version_application, debut_demande, fin_demande, fingesdem, etat_protocole, date_protocole, etat_bilan, date_bilan, etat_demande FROM demande WHERE id_acteur_cpi="'.$identif.'"'); $ligne_d = mysql_num_rows($demande); echo '<p style="text-align: center;"> <b><u>Demandes</u></b> </p>'; if(empty($ligne_d)) echo " <p align='center'> Vous n'êtes concerné par aucune demande </p> "; else { echo '<table cellspacing=2 cellpadding=10 id="tab_acteur"> <th> Libellé </th> <th> Application </th> <th> Version </th> <th> Début </th> <th> Fin </th> <th> Etat </th> <th> Protocole </th> <th> Date protocole </th> <th> Bilan </th> <th> Date bilan </th>'; while($resultat3 = mysql_fetch_assoc($demande)) { echo '<tr align="center">'; echo '<td>'.$resultat3['libelle'].'</td>'; echo '<td>'.$resultat3['application'].'</td>'; echo '<td>'.$resultat3['version_application'].'</td>'; echo '<td>'.$resultat3['debut_demande'].'</td>'; $find = formater_date($resultat3['fin_demande']); echo '<td>'.$find.'</td>'; echo '<td>'.$resultat3['etat_demande'].'</td>'; echo '<td>'.$resultat3['etat_protocole'].'</td>'; $dproto = formater_date($resultat3['date_protocole']); echo '<td>'.$dproto.'</td>'; echo '<td>'.$resultat3['etat_bilan'].'</td>'; $dbilan = formater_date($resultat3['date_bilan']); echo '<td>'.$dbilan.'</td>'; echo '</tr>'; } echo '</table>'; } echo '</div>'; } else header('location: chercher_user.php'); ?> </div> </body> </html>
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127 <?php session_start(); include_once ("fonctions.php"); include_once ("fonctionsjs.php"); connexion(); if ((!isset($_SESSION['mail'] ))&& (!isset($_SESSION['pwd']))) { refuser(); $lebas=1; echo "<script type='text/javascript'> history.back(); </script>"; // retour à la page d'où on a demandé l'accès à une page protégée } else { $lebas=2; } entete("Nouvell acteur", $lebas); ?> <form method="post" id="form" > <fieldset class="absence_personne"> <legend> Nouvel acteur </legend> <table cellspacing=20 cellpadding=2 align="center"> <div id="erreur"> </div> <tr> <label> <td> Nom <font color="red" size=2> * </font> </td> <td> <input type="text" name="nom" id="nom" size=30 value="<?php if(isset($_POST['nom'])) echo $_POST['nom']; ?>" /> </td> </label> </tr> <tr> <label> <td> Prénom <font color="red" size=2> * </font> </td> <td> <input type="text" name="prenom" id="prenom" size=30 value="<?php if(isset($_POST['prenom'])) echo $_POST['prenom']; ?>" /> </td> </label> </tr> <tr> <label> <td> Profil </td> <td> <select name="profil" id="profil" onchange="champ_pwd()"> <?php $val = ''; liste_profils($val);?> </select> </td> </label> </tr> <tr> <label> <td> E-mail <font color="red" size=2> * </font> </td> <td> <input type="text" name="email" id="mail" size=30 value="<?php if(isset($_POST['email'])) echo $_POST['email']; ?>" /> </td> </label> </tr> <tr> <label> <td> Mot de passe </td> <td> <input type="hidden" name="pwd" id="pwd" size=30 /> </td> </label> </tr> <tr> <label> <td> Téléphone </td> <td> <input type="text" name="tel" size=30 value="<?php if(isset($_POST['tel'])) echo $_POST['tel']; ?>" /> </td> </label> </tr> <tr> <label> <td> </td> <td align="center"> <input type="submit" name="sauver" value="Enregistrer" onclick="return verifier_ajout_personne();" /> <input type="submit" name="annulation" value="Annuler" /> </td> </label> </tr> <tr> </tr> </table> </fieldset> </form> <?php if (isset($_POST['sauver'])) //si on appuie sur "Enregistrer", récupérer les valeurs saisies { $nom = verifier_isset("nom"); $prenom = verifier_isset("prenom"); $profil = verifier_isset("profil"); $email = verifier_isset("mail"); $pwd = verifier_isset("pwd"); $tel = verifier_isset("tel"); //vérification côté serveur au cas où javascript serait désactivé ou poserait problème if (empty($prenom) or empty($email) or empty($nom)) echo '<script type="text/javascript"> alert( "Vous devez remplir les champs nom, prénom et e-mail"); </script>'; else { if (verifiermail($email)) //format email valide { $mail = mysql_query('select email from Personne where email="'.$email.'"'); $ligne = mysql_num_rows($mail); if (!empty($ligne)) //si l'email existe déjà { echo '<script type="text/javascript"> alert ("Cette personne est déjà enregistrée"); </script>'; } else if (empty($ligne)) { $acteur = "$prenom $nom"; $double = mysql_query('select email from Personne where acteur="'.$acteur.'"'); $ligne2 = mysql_num_rows($double); if (!empty($ligne2)) { echo '<script type="text/javascript"> alert ("Attention, une autre personne porte les mêmes noms et prénom"); </script>'; } $inserer = mysql_query(' INSERT INTO Personne VALUES("", "'.$acteur.'", "'.$profil.'", "'.$email.'", "'.$pwd.'", "'.$tel.'")'); if ($inserer) { echo '<script type="text/javascript"> alert (" Nouvel acteur enregistré "); </script>'; } else echo '<script type="text/javascript"> alert ("Erreur pendant l\'enregistrement"); </script>'; } } else //format email invalide { echo '<script type="text/javascript"> alert ("L\'adresse email est invalide") </script>'; } } } //si appui sur annuler retour_annuler("index"); ?> </div> </body> </html>
Les liens entre les autres pages ne posent de problème de connexion et j'ai bien sauvé les variables de session à l'authentification.
ça n'arrive que sous FF pas sous IE7
++
Partager