IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème de session


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut Problème de session
    Bonjour,

    J'ai une fonction de connexion comme suit:

    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
     
    <?
    				require ("connect.php");
    				mysql_connect (SERVEUR, NOM, PASSE) or die(mysql_error);
        			mysql_select_db (BASE) or die(mysql_error);
     
    				//on extrait les données du formulaire et on crypte le mot de passe
    				$pseudo = $_POST['nom'];
    				$passe = $_POST['mdp'];
     
    				//on va chercher les infos du membre
    				$utili= mysql_query("SELECT * FROM adherent WHERE nomadh='$pseudo';");
    				$membre = mysql_fetch_object($utili);
    				$pseud="$membre->nomadh";
    				$pass="$membre->mdpadh";
    				$num="$membre->numadh";
    				$url="$membre->urladh";
     
    				//Si le retour est vide, le pseudo n'existe pas
    				if($pseud=="")
    	   				{
    	      				echo "Le pseudo n'existe pas...";
    	      				echo '<meta http-equiv="refresh" content="3;URL=index.php">';
    	   				}
    				else
    	   				{
    	      				//On teste si les mots de passe correspondent
    	      				if($passe<>$pass)
    	         				{
    		    					echo '<body onLoad="alert(\'Pas le bon mot de passe...\')">';
    		    					echo '<meta http-equiv="refresh" content="3;URL=index.php">';
    	         				}
    	      				else
    	         				{
    	            				session_start();
    	            				$registered="ok";
        							$_SESSION["registered"]= $registered;
        							$_SESSION["login"] = $pseud;
                    				$_SESSION["pwd"] = $pass;
                    				$_SESSION["num"] = $num;
    	            				$chemin = $_SERVER['SERVER_NAME'].$url;
                                    // on redirige notre visiteur vers une page de notre section membre
                                    header ('location: page_membre.php');
    	         				}
    	   				}
    		?>
    Ensuite je souhaitais protéger des pages pour que les non membres ne puissent les voir dans une page vérif:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?
    		if(!$_SESSION['registered'])
    			{
    				echo "<p align=center><font face='Comic Sans MS' size='3' color=#000000>Vous n'êtes pas connecté</font></p>";
    				exit();
    			}
    	?>
    Et donc pour protéger les pages, sur chaque je rajoutais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?
    session_start();
    require("func_verif_session.php");
    ?>
    Et le problème c'est que lorsque quelqu'un de non membre tente d'afficher une page non autorisée ça affiche ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Notice: Undefined index: registered in c:\program files\easyphp1-7\www\site final\func_verif_session.php on line 24
     
    Vous n'êtes pas connecté
    Ca fait un moment que je cherche et je n'arrive pas à corriger le problème, quelqu'un peut m'aider svp ?
    "Vous qui entrez ici, abandonnez toute espérance." Dante

  2. #2
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonsoir,

    Si j'ai bien vu, $_SESSION['registered'] n'obtient une valeur que si le membre est bien enregistré.
    Il est donc normal que dans le cas contraire cette variable n'existe pas.
    Or tu testes la valeur de celle-ci.
    Conclusion : tu pourrais utiliser isset()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(!isset($_SESSION['registered']))
    			{
    				echo "<p align=center><font face='Comic Sans MS' size='3' color=#000000>Vous n'êtes pas connecté</font></p>";
    				exit();
    			}
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

  3. #3
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par papyphp
    Bonsoir,

    Si j'ai bien vu, $_SESSION['registered'] n'obtient une valeur que si le membre est bien enregistré.
    Il est donc normal que dans le cas contraire cette variable n'existe pas.
    Or tu testes la valeur de celle-ci.
    Conclusion : tu pourrais utiliser isset()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(!isset($_SESSION['registered']))
    			{
    				echo "<p align=center><font face='Comic Sans MS' size='3' color=#000000>Vous n'êtes pas connecté</font></p>";
    				exit();
    			}
    Très juste ! J'avais pensé à ça mais je ne savais pas comment contourné le problème Merci beaucoup ça marche !
    "Vous qui entrez ici, abandonnez toute espérance." Dante

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Servlets - JSP] Problème de session
    Par the java lover dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/11/2011, 09h54
  2. Problème de session
    Par kephy dans le forum Langage
    Réponses: 11
    Dernier message: 24/11/2005, 10h08
  3. Problème de session
    Par meda dans le forum Langage
    Réponses: 13
    Dernier message: 25/10/2005, 18h25
  4. problème de session en cours
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/07/2005, 14h36
  5. Gros problème de session/cookies
    Par valfredr dans le forum XMLRAD
    Réponses: 18
    Dernier message: 03/06/2004, 09h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo