Bonjour,
Après une recherche sur plusieurs pages je n'ai pas réussi à trouver le pourquoi de mon problème et pourtant plusieurs avait le même soucis que moi, mais je pense avoir fait tout ce qu'ils leur manquait. Bref, ma variable de session ne se transmet pas d'une page à l'autre.
J'ai donc un index.php (ou je demande à l'admin son login et son mdp), ensuite cela m'envoie sur la page de verification qui si les codes sont incorrects me renvoie sur la page d'index, mais s'ils sont corrects m'affiche la page d'admin avec des liens et je récupère bien la variable de la session !
Mais une fois que je clique sur un lien pour aller sur une autre page il ne trouve plus la variable :O !
voici les différents codes de mes pages :
index.php
Code HTML : 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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <title>Administration des interventions</title> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css"> <body> <?php include("haut.html"); ?> <div id="content"> <form action="verif.php" method="post"> <p align="top"><b>Utilisateur :<b><br> <input type="text" name="login" /> </p> <p> <p align="top"><b>Mot de passe :<b> <br> <input type="password" name="mot_de_passe" /><br> <input type="submit" value="Valider" /> </p> </form> </div> <?php include("bas.html"); ?> </body> </html>
verif.php
Code HTML : 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 <?php $login = $_POST['login']; $_SESSION['login'] = $login; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <title>Administration des interventions</title> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css"> <body> <?php if (isset($_POST['mot_de_passe']) && (isset($_POST['login']))) // Si les deux variables existent on crée les variables mot de passe et login. { $mot_de_passe = $_POST['mot_de_passe']; $login = $_POST['login']; } else // Sinon si elle n'existe pas encore { $mot_de_passe = ""; // On crée une variable $mot_de_passe vide au départ $login = ""; // On créé une variable $login qui est vide au départ } if (($mot_de_passe == "elp6fg33h") && ($login == "admin")) // Si le mot de passe (elp6fg33h) et le login (admin) sont corrects on affiche la page { setCookie('Interventions','Liste des interventions',time()+24*3600); include ("haut.html"); echo "<div id='content'><b><h1>Connexion réussie !</h1> <br><br><br> <img src='./IMG/intervention.jpg'><br><br><a href='recapitulatif.php'>Liste Récapitulative des demandes d'interventions</a><br><br><img src='./IMG/sep.jpg'><br><br><a href='recapitulatif.php'>Liste des demandes d'un compte Utilisateur/messagerie</a><br><br><img src='./IMG/compte.jpg'><br><br>Bienvenue sur la page d'administration <font color='red'>" . $login . "</font></b></div>"; include ("bas.html"); } else { include("haut.html"); ?> <div id='confirm'> <SCRIPT language='Javascript'> <!-- alert('Vous n\'avez pas renseigné tous les champs'); history.back(-1); // --> </SCRIPT> </div> <?php include("bas.html"); } ?> </body> </html>
Jusqu'ici cela s'affiche bien, mais c'est ensuite que ça ne suit plus !
recapitulatif.php
Code HTML : 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 <?php $_SESSION['login'] = $login; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <title>Récapitulatif des interventions</title> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css"> <body> Connecté en tant que: <b><font color="red"><?php echo $login; ?></font></b> <a href="<?php session_destroy(); ?>" onclick="alert ('Vous êtes maintenant déconnecté');">(Se déconnecter)</a> <?php echo '<pre>'; print_r($_SESSION); echo '</pre>'; $id_connexion=mssql_connect('P46TOVAX995','sa','test'); // identifiants de connexion à la BDD if (!$id_connexion) // Si la variable $id_connexion du dessus est différente des identifiants elle retourne un message d'erreur. echo "tentative échouée"; else echo "connexion OK"; // Sinon elle affiche que la connexion est ok et elle va donc pouvoir exécuter le requête. $id_selectBD=mssql_select_db("intervention",$id_connexion); if (isset($_POST['observations']) AND isset($_POST['statut'])) { $observations = str_replace("'", "''",$_POST['observations']); // on remplace le caractère "'" non pris en compte avec SQL server et on le remplace par "''", qui sera accepté et nous rendra l'apostrophe sans retourner de message d'erreur. $statut = ($_POST['statut']); // On protège la variable "id_itv" pour éviter une faille SQL $_POST['id_itv'] = addslashes($_POST['id_itv']); // C'est une modification, on met juste à jour les observations et le statut mssql_query("UPDATE [intervention].[dbo].[itv] SET [observations]='" . $observations . "', [statut]='" . $statut . "' WHERE [ID]='" . $_POST['id_itv'] . "'"); } ?> <br> <h3>Récapitulatif des interventions</h3><br> <table width="100%" border="1" id="recap"> <tr > <td width="2%"><div id="tableau1">ID</div></td> <td width="10%"><div id="tableau1">User</div></td> <td width="10%"><div id="tableau1">Date</div></td> <td width="15%"><div id="tableau1">Type</div></td> <td width="9%"><div id="tableau1">Urgence Estimée</div></td> <td width="25%"><div id="tableau1">Motif</div></td> <td width="25%"><div id="tableau1">Observations</div></td> <td width="4%"><div id="tableau1">statut</div></td> </tr> </table> <?php $requete = mssql_query("SELECT * FROM itv"); //execution de la requête SQL while ($ligne = mssql_fetch_array($requete)) { ?> <table width="100%" border="0"> <tr > <td width="2%"><div id="tableau2"><font color="green"><?php echo $ligne['ID']; ?></font></div></td> <td width="10%"><div id="tableau2"><?php echo $ligne['utilisateur']. "<br>" . $ligne['pc']; ?></div></td> <td width="10%"><div id="tableau2"><?php echo $ligne['date']; ?></div></td> <td width="15%"><div id="tableau2"><?php echo $ligne['type']; ?></div></td> <td width="9%"><div id="tableau2"><?php echo $ligne['urgence']; ?></div></td> <td width="25%"><div id="tableau2"><?php echo $ligne['motif']; ?></div></td> <td width="25%"><div id="tableau2"><font color="red"><?php echo $ligne['observations']; ?></font> <br> <?php echo '<a href="modif.php?modifier=' . $ligne['ID'] . '">'; ?>Modifier</a></div></td> <td width="4%"><div id="tableau2"><img src="<?php echo $ligne['statut']; ?>"></div></td> </tr> </table> <?php } mssql_close(); ?> </body> </html>
Et enfin ^^, modif.php qui renvoie sur recapitulatif.php pour la mise à jour (ça viendrait de la?) !
Code HTML : 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 <?php if ( isset ($_SESSION['login']) ) { $_SESSION['login'] = $login; } else { $login = "Vous n'êtes plus identifié"; } ?> <html> <body> <title>Modification du statut et ajout des observations</title> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css"> Connecté en tant que: <b><font color="red"><?php echo $login; ?></font></b> <a href="<?php session_destroy(); ?>" onclick="alert ('Vous êtes maintenant déconnecté');">(Se déconnecter)</a> <?php echo '<pre>'; print_r($_SESSION); echo '</pre>'; $id_connexion=mssql_connect('P46TOVAX995','sa','test'); // identifiants de connexion à la BDD if (!$id_connexion) // Si la variable $id_connexion du dessus est différente des identifiants elle retourne un message d'erreur. echo "tentative échouée"; else echo "connexion OK"; // Sinon elle affiche que la connexion est ok et elle va donc pouvoir exécuter le requête. $id_selectBD=mssql_select_db("intervention",$id_connexion); if (isset($_GET['modifier'])) // Si on demande de modifier une demande { // On protège la variable "modifier" pour éviter une faille SQL $_GET['modifier'] = (htmlspecialchars($_GET['modifier'])); // On récupère les infos de la demande correspondante $retour = mssql_query('SELECT * FROM [intervention].[dbo].[itv] WHERE [ID]=\'' . $_GET['modifier'] . '\''); $ligne = mssql_fetch_array($retour); $observations = str_replace("'", "''",$ligne['observations']); // on remplace le caractère "'" non pris en compte avec SQL server et on le remplace par "''", qui sera accepté et nous rendra l'apostrophe sans retourner de message d'erreur. $statut = stripslashes($ligne['statut']); $id_itv = $ligne['ID']; // Cette variable va servir pour se souvenir que c'est une modification } ?> <?php include("haut.html"); ?> <div id="content"> <form action="recapitulatif.php" method="post"> <textarea name="observations" cols="50" rows="8"><?php echo $ligne['observations']; ?></textarea><br><br> <select name="statut" size="1"><br><br> <option selected value="IMG/Traitement_en_cours.gif" alt="statut: En cours">Traitement de la demande en cours</option> <option value="IMG/demande_traitee.gif" alt="statut: terminé">Demande traitée </option> </select> <input type="hidden" name="id_itv" value="<?php echo $id_itv; ?>" /> <input type="submit" value="Envoyer" id="button" /> </form> </div> <?php include("bas.html"); ?> </body> </html>
Désolé pour la longueur ^^ !
D'avance merci de vos réponses !
NB: Pas de session_start(); , je l'ai mis a 1 dans mon php.ini !
Partager