Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 21/06/2008, 22h41   #1
Invité régulier
 
Inscription : décembre 2004
Messages : 37
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 37
Points : 9
Points : 9
Par défaut Probleme de session basique

Bonjour à tous,

je suis débutant en php, je suis en train de réaliser un petit site dans lequel j'aimerai bien intégrer des sessions.

L'utilisateur va dans l'espace client et se connecte, et des lors il peut acceder à de nouvelles pages :

Voilà ma premiere page où se trouve le formulaire de connexion :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<form method="post" action="connexion.php">
 
	<?php if ((isset($_SESSION['login_session'])) && (!empty($_SESSION['login_session'])))
	{ 
		echo "test";
	}
 
	else
	{
		// pas de login en session : proposer la connexion ?>
    <table>
    <tr><td><h2>Connexion</h2></td></tr>
	<tr><td><b>Login :</b></td><td><input type="text" name="login" size="25" /></td></tr>
	<tr><td><b>Pass :</b></td><td><input type="password" name="mdp" size="25" /></td></tr>
	<tr><td></td><td><input type="submit" value="Envoyez" /></td></tr>
    </table><br />
	<?php }?>
</form>
et voilà ma page avec le traitement :

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
$login = $_POST['login'];
$mdp = $_POST['mdp'];
?>
 
<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("clients");
 
$donnees = mysql_query("SELECT Mdp FROM clients WHERE Login='$login'");
 
$mdpconf = mysql_fetch_array($donnees);
 
?>
 
<?php
 
if ( $mdp == $mdpconf['Mdp'])
{
    echo "Vous êtes maintenant connecté, vous pouvez accéder à votre espace client.";
	if( $PHPSESSID )
	{
	session_start( $PHPSESSID );
	session_destroy();
	}
	session_start();
	$_SESSION['$login_session'] = $login;
?>
    <h4>Vous allez être redirigé dans 4 secondes</h4><meta http-equiv=refresh content="4; url=wave.php">
    <h4>Si vous ne souhaitez pas attendre, cliquez <a href="wave.php">ici</a>.</h4> 
<?php
 
}
else
{
	echo "L'utilisateur ou le mot de pass est incorrect !";?>
	<h4><a href="espace_clients.php">Retour</a></h4> 
 
<?php }
 
mysql_close(); // Déconnexion de MySQL
?>
La connexion marche nikel, des que l'utilisateur est bien dans la bdd. Seulement, la session ne marche pas, il ne prends pas en compte si la session est ouverte ou pas :s

Ca vient surement de ça :
Code :
1
2
3
4
5
6
7
8
 
	if( $PHPSESSID )
	{
	session_start( $PHPSESSID );
	session_destroy();
	}
	session_start();
	$_SESSION['$login_session'] = $login;
Merci d'avance pour votre aide
fomblardo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2008, 22h42   #2
Membre confirmé
 
Avatar de juliens9
 
Directeur technique
Inscription : mars 2007
Messages : 192
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : mars 2007
Messages : 192
Points : 220
Points : 220
As tu bien mis des session_start sur toutes les pages concernées par les sessions

As tu bien verifier l'option session_autostart dans la configuration de ton serveur apache
juliens9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2008, 23h04   #3
Invité régulier
 
Inscription : décembre 2004
Messages : 37
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 37
Points : 9
Points : 9
j'ai bien mis un session_start, par contre je ne vois pas comment configurer apache, je regarde dans les modules apache de WAMP, pour cocher session_autostart, mais je ne le trouve pas

Merci pour ton aide
fomblardo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2008, 23h06   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Je ne comprends pas bien ce que tu veux faire

Code :
1
2
3
4
5
6
7
if( $PHPSESSID ) // si un id de session est passé
	{
	session_start( $PHPSESSID ); // on demarre la session
	session_destroy(); // on la vide
	}
	session_start(); // on demarre la session alors qu'elle a pu eventuellement etre initialisé plus haut 
	$_SESSION['$login_session'] = $login;
Je ne vois pas le cas "sans session" dont tu parles.

Et pourquoi cherches-tu a voir si il y a une session existante ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2008, 23h17   #5
Invité régulier
 
Inscription : décembre 2004
Messages : 37
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 37
Points : 9
Points : 9
Lorsque l'utilisateur a réussi sa connexion, on regarde si une session existe ou pas, si une session existe on la détruit et on en crée une nouvelle.

Ensuite on enregistre le login dans une variable pour nous permettre de réaliser d'autres opérations sur les autres pages.
fomblardo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2008, 23h19   #6
Membre confirmé
 
Avatar de juliens9
 
Directeur technique
Inscription : mars 2007
Messages : 192
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : mars 2007
Messages : 192
Points : 220
Points : 220
Pour ton session autostart, il faut que tu trouve le php.ini de ton serveur.
juliens9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2008, 23h20   #7
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Tu pourrais etre plus precis sur ce qui ne fonctionne pas ?

session.auto_start sert a demarrer systematiquement les sessions sans faire session_start() ... aucun rapport avec notre choucroute donc.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2008, 00h02   #8
Invité régulier
 
Inscription : décembre 2004
Messages : 37
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 37
Points : 9
Points : 9
C'est ma condition if qui ne marche pas, voilà un exemple :

Une fois l'utilisateur connecté, je le renvoie directement sur la page d'accueil, dans mon menu en fonction de s'il est connecté ou pas je veux afficher un lien :

Code :
1
2
3
4
5
6
7
<?php if ((isset($_SESSION['login_session'])) && (!empty($_SESSION['login_session']))) 
{
echo"<li><a href=\"questionnaire.htm\">Questionnaire</a></li>"
} 
else {
echo"<li><a href=\"espace_clients.php\">Espace clients</a></li>"
} ?>
Si l'user est connecté, il peut acceder au questionnaire, sinon il doit aller à l'espace client d'abord.
Ca ne marche pas du tout.
fomblardo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2008, 00h10   #9
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Code :
$_SESSION['$login_session'] = $login;
c'est normal le $ devant login_session ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2008, 00h25   #10
Invité régulier
 
Inscription : décembre 2004
Messages : 37
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 37
Points : 9
Points : 9
lol -_-

C'était bien ça...

Désolé de vous avoir embêté à cause de mon manque d'inattention.

En tout cas merci beaucoup à toi de t'être penché sur mon problème je commençais à m'arracher les cheveux.

Merci encore.
fomblardo 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 03h05.


 
 
 
 
Partenaires

Hébergement Web