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)
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>
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
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>";
	}
 
?>
Jusque là, tout va bien, il m'affiche bien "Bienvenue Machin !" et me redirige vers la page d'accueil :

index.php (page d'accueil qui vérifie que le user est OK => Sinon retour à la page de connexion)
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');
[...]
 
?>
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...

Indice : Si je vire le @ devant session_start(), il me dit "Cannot send session cookie - headers already sent by ..."

Merci de votre (future) aide