Bonjour,
J'utilise un système de sessions pour l'identification sur un site web, mais je perds mes infos de session. Je vous mets le code :
connexion.php (1ère page d'identification)
login.php (2ème page qui crée la session)
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 <form method="post" action="login.php"> <table> <tr> <td>Identifiant</td><td><input type="text" name="id" id="id" /></td> </tr> <tr> <td>Password</td><td><input type="password" name="password" id="password" /></td> </tr> <tr> <td colspan="2" align="right"> <input type="submit" value="Connexion" /> </td> </tr> </table> </form>
Jusque là, tout va bien, il m'affiche bien "Bienvenue Machin !" et me redirige vers la page d'accueil :
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 <?php @session_start(); $id = $_REQUEST["id"]; $password = $_REQUEST["password"]; require_once("connexion_bdd.php"); $req_identification = mysql_query("SELECT * FROM BD_USER WHERE ID = '".$id."' AND PASSWORD = '".$password."'"); if (mysql_num_rows($req_identification) == 0) { $_SESSION['pk_user'] = ''; $_SESSION['id_user'] = ''; echo "<head><meta http-equiv='refresh' content='3;url=http://xxxxxx/connexion.php' /></head>"; echo "Identifiant ou mot de passe incorrect !"; } elseif (mysql_num_rows($req_identification) > 1) { $_SESSION['pk_user'] = ''; $_SESSION['id_user'] = ''; echo "<head><meta http-equiv='refresh' content='3;url=http://xxxxxx/connexion.php' /></head>"; echo "Plus d'un utilisateur correspond à votre identifiant, merci de contacter l'administrateur !"; } else { while($res_identification=mysql_fetch_array($req_identification)) { $pk_user = $res_identification["PK_USER"]; $id_user = $res_identification["ID"]; } $_SESSION['pk_user'] = $pk_user; $_SESSION['id_user'] = $id_user; echo "<head><meta http-equiv='refresh' content='3;url=http://xxxxxx/index.php' /></head>"; echo "<div align='center'>Bienvenue ".$_SESSION['id_user']." !</div>"; } ?>
index.php (page d'accueil qui vérifie que le user est OK => Sinon retour à la page de connexion)
Mais là il m'affiche la pop-up "Session perdue !" et retour à la page de connexion. Il n'a plus les variables de ma session...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php @session_start(); if (empty($_SESSION['pk_user']) || empty($_SESSION['id_user'])) { echo '<script language="javascript" type="text/javascript">window.alert("Session perdue !'.$_SESSION['id_user'].$_SESSION['pk_user'].'");window.location.replace("http://xxxxxx/connexion.php");</script>'; } require_once('header.php'); [...] ?>
Indice : Si je vire le @ devant session_start(), il me dit "Cannot send session cookie - headers already sent by ..."
Merci de votre (future) aide
Partager