Précédent   Forum des professionnels en informatique > PHP > Outils > WAMP
WAMP Forum d'entraide sur WAMP (Windows Apache MySQL PHP) : installation, utilisation, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/09/2007, 01h29   #1
Membre régulier
 
Inscription : décembre 2005
Messages : 192
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 192
Points : 84
Points : 84
Par défaut Perte d'informations entre deux pages

Bonsoir.

Je fais un petit programmequi utilise les session.

Un utilisateur se logue avec identifiant et mot de passe. Une fois connecté il est envoyé sur une page qui verifie log et mot de passe. si l'utilisateur est authentifié alors on remplit une variable session avec les info utilisateur et on redirige vers Le site. probleme je perd les infos de la session. Pourtant je met les session start habituels.

je travail sous la derniere version de wamp. J'utilise une base de données mysql. Mon os est windows vista et je fais mes test sous IE 7 .

voici le code du formulaire:

Code :
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
 
 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
<html>
<head>
<title>Page title</title>
<style>
p
{
color:#FF0000;
font-size:9 pt
}
</style>
<script>
function verif()
{
 if(document.formulaire.log.value=="")
 {
 	 alert("veuillez entrer un pseudo");
 }
 
 
  if(document.formulaire.mdp.value=="")
 {
 	 alert("veuillez entrer un mot de passe");
 
 
 
 }
 
 
 
}
</script>
<?php
if(isset($_GET))
{
 	if(isset($_GET['verif']))
	{
	 ?>
	 <script>
	 verif();
	 </script>
	 <?
<?php
	}
}
 
 
?>
</head>
<body>
<center>
<form  method="post" action="verif_login.php" name="formulaire">
<table>
<tr>
<td>
log
</td>
<td>
<input name="log" type="text" value="entrez votre pseudo" onBlur="javascript:verif()">
</td>
</tr>
<tr>
<td>
mot de passe
</td>
<td>
<input name="mdp" type="password" value="*******"  onBlur="javascript:verif()">
</td>
</tr>
<tr>
<td colspan="2">
<center>
<input type="submit" value="se connecter">
</center>
</td>
</tr>
</table>
<?php
if(isset ( $_GET["erreur"]))
{ 
  if($_GET['erreur']=="log")
	{
	  ?>
		<p class="erreur">le login n'existe pas</p>
		<?php
	}
	 if($_GET['erreur']=="mdp")
	{
	  ?>
		<p class="erreur">mot de passe incorrect</p>
		<?php
	}
}
 
?>
</center>
 
</body>
</html>
voici le code de la page de verification

Code :
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
 
<?php 
session_start();
include("utilisateur_sql.php");
 
$sql_util=declare_sql();
$pseudo=$_POST['log'];
$table_utilisateur=recup_tout($sql_util,$pseudo);
if($table_utilisateur==false)
{
 
 header("location:http://127.0.0.1/finance/login.php?erreur=log");
 
}
else
{
 $mot_de_passe=$_POST['mdp'];
 if($mot_de_passe==$table_utilisateur['mdp_md5'])
 {
 
   $_SESSION['id_utilisateur']=$pseudo;
	 $_SESSION['nom']=$table_utilisateur['nom'];
	 $_SESSION['prenom']=$table_utilisateur['prenom'];
	 $_SESSION['budget']=$table_utilisateur['montant'];
	 $_SESSION['co']=true;
 
	 //echo "header";
 
 
	 ?>
	 header("location:http://127.0.0.1/finance/essai.php");
	 <?php
 
 }
 else
 {
    header("location:http://127.0.0.1/finance/login.php?erreur=mdp");
 }
}
 
 
 ?>
et voici le code de la page essai.php sur laquelle je redirige un utilisateur s'il est bien authentifié.(c est juste une page qui fait un var_dump sur la session pour vérifier).

Code :
1
2
3
4
5
 
<?php
session_start();
var_dump($_SESSION);
?>
essai m'affiche array(0)
sneb5757 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 11h26   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Il est possible que ce soit dû au fait que vous n'utilisiez pas le même nom de serveur au niveau des redirections :
Code :
header("location:http://127.0.0.1/finance/login.php?erreur=log");
Puisqu'ici vous utilisez l'adresse mais si vous atteignez d'abord la page à partir du nom de la machine, le cookie, et donc la session, ne seront plus communs.

Notez que vous obtiendrez le nom de la machine ou adresse de manière dynamique (donc portable) via les variables $_SERVER['SERVER_NAME'] ou $_SERVER['SERVER_ADDR'].
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 21h38   #3
Membre régulier
 
Inscription : décembre 2005
Messages : 192
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 192
Points : 84
Points : 84
J'avoue ne pas bien comprendre l'explication.

Parce que je suis passé sous WAMP recemment . Sous easy-PHP je faisais comme ça et j'ai jamais eu ce problème.
sneb5757 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 23h06   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Lorsque vous êtes sur cette page, quelle adresse est affichée dans votre navigateur (au départ, ie avant toute redirection) ?

Si vous utilisez des adresses différentes, vous aurez un cookie pour chacune d'entre elles (donc perte de la session). Exemple avec : 127.0.0.1 et localhost. Pour vous ça ne change rien mais en interne le "nom" de serveur associé au cookie n'est plus le même : un cookie sera créé avec pour domaine 127.0.0.1 et l'autre avec localhost.

Ce n'est qu'une hypothèse ...
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 09h46   #5
Membre régulier
 
Inscription : décembre 2005
Messages : 192
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 192
Points : 84
Points : 84
hé bien ce n'est pas qu'une supposition c'est ça.

En faite le problème c'est que j'accédé a wamp en tapant dans le navigateur http://localhost/finance. Si je l fait en tapant http://127.0.0.1/finance ça marche.

merci beaucoup j'ignorai que ça faisait une différence pour le serveur.
sneb5757 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 11h20   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par sneb5757
merci beaucoup j'ignorai que ça faisait une différence pour le serveur.
Ce n'est pas le serveur qui gère cela ainsi : c'est le client (votre navigateur). Il n'envoie que les données des cookies dont le domaine correspond à celui qui en est à l'origine de leur création (ie lorsque vous faîtes appel à la fonction setcookie en PHP), pour des questions de sécurité notamment.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h09.


 
 
 
 
Partenaires

Hébergement Web