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 22/11/2006, 17h29   #1
Invité de passage
 
Inscription : novembre 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 6
Points : 1
Points : 1
Par défaut pb avec espace membres

bonjour
je ne sais pas si je suis pas le bon forum pour ce message sinon veuillez le déplacer.
je debute en php et je suis en train de faire un espace membres.Mon pb est que quand je me logue je retombe sur la page index.php au lieu de membres.php et si je vais dans membres.php en mettnt l'adresse directement ça me dit que je dois me connecter pour pouvoir acceder à la page,alors que je suis deja connecter.
voici mon code de connexion et de ma page membres.php

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
<?php
//Si la variable $_POST['connexion'] (bouton submit du formulaire) et la variable $_SESSION['logged'] vaut false (déconnecté) existent.
if (isset($_POST['connexion']) && $_SESSION['logged'] === false)
{
        //Vérification des autres variables.
        if (isset($_POST['pseudo'],$_POST['mot_passe']) && !empty($_POST['pseudo']) && !empty($_POST['mot_passe']))
        {
                //Vérification du pseudo.
                $pseudo = htmlspecialchars($_POST['pseudo']);
                $mot_passe = htmlspecialchars($_POST['mot_passe']);
 
                //Requête comptant le nombre de pseudos $_POST['pseudo']
                $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
 
                //Si le pseudo existe.
                if (mysql_result($sql,0,'nb_pseudo') == 1)
                {
                        //Vérification du mot de passe
                        //Information sur le compte du membre.
                        $sql_infos = mysql_query("SELECT id, mot_passe, confirmation FROM membres WHERE pseudo='".$pseudo."'");
                        $donnees = mysql_fetch_array($sql_infos);
 
                        //Hashage du mot de passe.
                        $mot_passe_hash = md5($mot_passe);
 
                        //Comparaison du mot de passe.
                        if ($mot_passe_hash == $donnees['mot_passe'])
                        {
                                //On vérifie que le compte est confirmé.
                                //Si $donnees['confirmation'] vaut 1.
                                if ($donnees['confirmation'] == 1)
                                {
                                        if (isset($_POST['souvenir']) && $_POST['souvenir'] == 'on')
                                        {
                                            //Temps d'expiration des cookies (1 an).
                                            $expire = time() + 3600 * 24 * 365;
 
                                            setcookie('pseudo', $pseudo, $expire);
                                            setcookie('mot_passe', $mot_passe_hash, $expire);
                                        }
 
                                        //Tout est bon, on connecte le membre.
                                        $_SESSION['logged'] = true;
 
                                        //Création de 2 variables de session, contenant des informations sur le membre.
                                        $_SESSION['id'] = $donnees['id']; //Id du membre.
                                        $_SESSION['pseudo'] = $pseudo; //Pseudo du membre.
 
                                        //Redirection vers la page membre.
                                        header("Location: membres.php");
                                }
                                else
                                        echo 'Erreur : le compte n\'est pas confirmé !';
                        }
                        else
                                echo 'Erreur : le mot de passe est incorrect !';
                }
                else
                        echo 'Erreur : le pseudo n\'existe pas !';
        }
        else
                echo 'Erreur : veuillez remplir tous les champs !';
}
?>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
//Ne pas oublier de mettre le session_start()
session_start();
 
//On vérifie que le membre est connecté.
if (isset($_SESSION['logged']) && $_SESSION['logged'] === true)
{
   //Mettez ici votre code xhtml (et php)
   //Exemple : affichage du lien de déconnection et du pseudo.
   echo 'Bonjour '.$_SESSION['pseudo'].'<br/><a href="deconnexion.php">Déconnexion</a>';
}
else
   echo 'Erreur : vous devez être connecté pour accéder à cette page !<br /> Allez <a href="index.php">ici</a> pour vous connecter.';
pouvez vous e dire d'ou vient l'erreur?
celine123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 17h59   #2
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Je ne vois pas de session_start dans ton premier script... normal ?
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 18h07   #3
Invité de passage
 
Inscription : novembre 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 6
Points : 1
Points : 1
oui j'en ai rajouté une entre tps mais ça change rien,j'ai tjs le meme pb
celine123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 18h13   #4
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
bonsoir,
je ne vois pas de declaration de variables dans ton 2eme code
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 18h36   #5
Invité de passage
 
Inscription : novembre 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 6
Points : 1
Points : 1
quelle declaration?
celine123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 18h50   #6
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
ok si tu veux jeter un coup d'oeil sur mon code.
si tu veux l'utiliser il te suffit de modifier le nom de la base de données.
Fichiers attachés
Type de fichier : rar session.rar (2,3 Ko, 14 affichages)
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 19h20   #7
Invité de passage
 
Inscription : novembre 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 6
Points : 1
Points : 1
oohh merci bcp je pense que ça va bien m'aider
celine123 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 23h30.


 
 
 
 
Partenaires

Hébergement Web