Bonsoir ,
Je suis en train de coder un formulaire d'inscription sur mon index.php qui renvoi sur membre.php , mais le probleme est que je n'arrive pas a garder la session ouverte , quand j'arrive sur membre .php les données normalement envoyées ne sont pas la , je vous met mes 2 codes :

En vous remerciant :

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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>
<?php
/* il faut demarrer la session*/
session_start();

if (empty($_SESSION['id'])) //les membres connecte ne peuvent pas s'inscrire
{
/* il faut que toutes les variables du formulaires existent*/
if(isset($_POST['pseudo']) && isset($_POST['mdp']) && isset($_POST['email']))
{
/*il faut que tous les champs soient renseignes*/
if($_POST['pseudo']!="" && $_POST['mdp']!="" && $_POST['email']!="")
{
/*connexion a la BDD*/
try
{
$bdd = new PDO('mysql:host=localhost;dbname=formulaire', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}

/* on teste l'adresse email, si c'est bon, on continue, sinon, on affiche un message d'erreur*/
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}.[a-z]{2,4}$#", $_POST['email']))
{
/*on verifie si un membre ne possede pas deja le meme pseudo*/
$req = $bdd->prepare('SELECT id FROM membre WHERE pseudo = :pseudo');
$req->execute(array('pseudo'=> $_POST['pseudo']));
$nb_resultats_recherche_membre=$req->fetch();

if(!$nb_resultats_recherche_membre) /*si il n'y a pas de resultat*/
{
/*on crypte le mot de passe*/
$mdp = sha1($_POST['mdp']);

/*Si le pseudo est libre et l'email valide, alors on enregistre le nouveau membre*/
$req=$bdd->prepare('INSERT INTO membre(pseudo, pass, email, date_inscription) VALUES(:pseudo, :pass, :email, CURDATE())');
$req->execute(array('pseudo'=>$_POST['pseudo'], 'pass'=>$mdp, 'email'=>$_POST['email']));

/* on demarre la session */
session_start();

/* on cree les variables de session du membre qui lui serviront pendant sa session*/
$_SESSION['id']= $resultat['id'];
$_SESSION['pseudo']= $pseudo;
$_SESSION['mail']= $resultat['email'];


header('Location: membre.php');
}
else
{
echo "Un membre possede deja ce pseudo";
}	
}
else
{
echo "Votre adresse email n'est pas valide";
}
}
else
{
echo "Il faut remplir tous les champs"; 
}
}
else
{
echo "Une erreur s'est produite";
}
}
else
{
echo "Vous n'avez pas le droit d'acceder a cette page";
}
?>
</body>
</html>

et

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>
<?php
session_start();
echo "page membre";
?>
<?php
echo 'id : ',$_SESSION['id'],'

mail : ',$_SESSION['mail'],'

<form action="logout.php" method="post">
<input type="submit" value="logout"/>
</form>';
?>
</body>
</html>