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 :

Undefined index sur une variable de session ?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 254
    Points : 69
    Points
    69
    Par défaut Undefined index sur une variable de session ?
    Bonjour,
    J'ai une table utlisateurs avec comme colonnes (user_id,pseudo,motpasse,groupe_id,service_id)
    j'ai cree un formulaire de connexion
    avec les champ pseudo et mo de passe
    Et dans Enregistrer.connexion.php
    je fais ca
    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
     
    <?php 
     
    if( (isset($_POST['pseudo'])) && (isset($_POST['motpasse']))
    	){
     
    		if( !empty($_POST['pseudo']))
     
    			{
     
    				if( !empty($_POST['motpasse']))
     
    					{
     
     
     
     
    // Hachage du mot de passe
    $motpasse_hache = sha1($_POST['motpasse']);
    $pseudo=$_POST['pseudo'];
     
     
     include('functions.php');
             $bdd_MCHNMFT=connect();
    		 try
    		 {
     
     
     
    // Vérification des identifiants
    $req_connexion = $bdd_MCHNMFT->prepare('SELECT * FROM utilisateurs WHERE pseudo = ":pseudo" AND motpasse = ":pass"');
    $req_connexion->execute(array(
        'pseudo' => $pseudo,
        'pass' => $motpasse_hache));
     
     
     
    	if ($res = $bdd_MCHNMFT->query($sql)) {
     
    $resultat = $req->fetch();
     
       if ($res->fetchColumn() > 0)
    {
        echo 'Mauvais identifiant ou mot de passe !';
    }
    else
    {
        session_start();
        $_SESSION['pseudo'] = $resultat['pseudo'];
        $_SESSION['motpasse'] = $resultat['motpasse'];
    	$_SESSION['profil_utilisateur'] = $resultat['groupe_id'];
    	 $_SESSION['service_id'] = $resultat['service_id'];
     
        echo 'Vous êtes connecté !';
    }
     
    	}
     
     
     
    catch (PDOException $e) 
    		{
    			echo "Échec : " . $e->getMessage(); 
    		}
     
    					}   // bloc du try
    	else
    	{
    		 echo 'Mot de passe obligatoire';
    	}	
     
    			}
     
    else{
     
    	 echo 'Pseudo obligatoire';
     
    }			
     
    	}
    Et dans toute une autre page quand j'utilise avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     echo  $_SESSION['service_id'];
    alors que toutes les autres variable de sessions s’affichent correctement a savoir $_SESSION['pseudo'] , $_SESSION['motpasse'],$_SESSION['profil_utilisateur'].
    seul $_SESSION['service_id'] me dit Notice: Undefined index: service_id

    Je ne sais ou se trouve le problème ?
    Si vous avez une solution ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le mot de passe n'a rien à faire en session.

    Si l'entrée "service_id" disparait entre les deux pages, trace ton code pour voir à quel endroit ça se passe.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    Salut

    je suis d'accord avec Sabotage. var_dump() peut t'aider.
    Personnellement sur un site "à session" j'ouvre la session dès que je peux, après je peux avoir un mode anonyme, un mode identifié connecté, un mode identifié déconnecté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req_connexion = $bdd_MCHNMFT->prepare('SELECT * FROM utilisateurs WHERE pseudo = ":pseudo" AND motpasse = ":pass"');
    moi j'aurai noté plus simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req_connexion = $bdd_MCHNMFT->prepare('SELECT * FROM utilisateurs WHERE pseudo = :pseudo AND motpasse = :pass ');
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

Discussions similaires

  1. Réponses: 10
    Dernier message: 30/05/2016, 14h09
  2. Réponses: 0
    Dernier message: 21/09/2011, 17h14
  3. 'Undefined index' sur une liste issue d'une requete
    Par Gareth dans le forum Langage
    Réponses: 9
    Dernier message: 26/05/2009, 11h35
  4. Réponses: 2
    Dernier message: 23/01/2008, 22h10
  5. Réponses: 1
    Dernier message: 07/12/2006, 19h02

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