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 nom de variable Session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2011
    Messages : 64
    Par défaut Problème nom de variable Session
    Bonjour,

    Avant d’exposer le problème je tiens juste à vous dire que cela fonctionne quand même mais j'ai juste une ligne de message d'erreur qui s'affiche.

    Je cherche à créer un lien se déconnecter après bien sur que la personne se soit connecté.
    Cela fonctionne bien. Sauf que lorsqu'un utilisateur chercher à aller sur une page ou il est nécessaire de s'être au préalable identifier j'ai un message d'erreur qui renvoie sur le haut de la page de code ( c'est à dire les variables de sessions)

    Notice: Undefined index: CodeProprio in c:\program files\easyphp\www\projetgite\adherent\[nom de la page sur lequel j'essaie d'aller.php] on line 3
    Dans mon formulaire ou la personne se connecte je trouve ce code là :

    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
     
    <?php 
    session_start ();
    ?>
     
    <html>
    <head>
     
    </head>
     
     
    <form method="POST" action="\ProjetGite\Adherent\rechercheproprio.php">
    <h3>S'authentifier</h3>
    Code propriétaire :
    <input type="text" name="CodeProprio" value="" /><br></br>
    Mot de passe  :
    <input type="password" name="PassProprio" value="" /><br></br>
    <input type="submit" value="Envoyer" />
    </body>
    </html>
    Le fichier recherche proprio donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     session_start();
    	// Récupération des données saisies dans le formulaire d'accueil
    		$CodeProprio=$_POST['CodeProprio'];
    		$PassProprio=$_POST['PassProprio'];
    $_SESSION['CodeProprio'] = $CodeProprio;
    ?>
    Et donc ensuite les variables de sessions sur les autres pages donnent ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    session_start();
    $CodeProprio=$_SESSION['CodeProprio']
    ?>
    Est-ce-que vous voyez ce qui va pas ?

    Merci beaucoup

  2. #2
    Membre très actif
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Par défaut
    Salut,

    C'est normal que tu as ceci si l'utilisateur ne s'est jamais connecté.

    Effectivement, s'il ne passe pas par ton formulaire, la variable de SESSION n'est jamais rempli...

    Donc erreur sur la récupération du codeProprio.

    Pour pouvoir visualiser ces pages :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(isset($_SESSION['codeProprio']))
    {
        $codeProprio = $_SESSION['codeProprio'];
        // Affichage de la page normalement
    }
    else
    {
        echo 'Vous n\'avez pas accès à cette page';
    }

  3. #3
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    A savoir aussi que les variables de session c'est comme pour les cookies il me semble (pas le matériel pour tester maintenant).
    Ce n'est mis à jour qu'à la seconde requête (en début de script donc de la prochaine requête serveur).

  4. #4
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2011
    Messages : 64
    Par défaut
    Salut,

    Merci de ta réponse.

    Je viens d'essayer de mettre le bout de code dans le fichier php, que ce soit en le mettant avant ou après la SESSION START, avant ou après la balise body,

    - L'écho s'affiche : c'est à dire : "Vous n'avez pas accès à la page"
    - Le contenu de la page s'affiche toujours

    Mais il renvoie un autre message d'erreur à la ligne qui correspond à ma requête SQL (là ou je demande d'aller chercher la variable PHP) ... (alors que normalement la page ne doit pas s'afficher).

    J'ai beau chercher plusieurs sorte de code sur Internet ça ne fonctionne pas.

    Voici un extrait du code modifié et le message d'erreur.

    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
    <?php 
    session_start();
     
    ?>
    <?php
    // Affectation des valeurs saisies dans des variables
    if (isset($_SESSION['CodeProprio']))
    {
    		$CodeProprio=$_SESSION['CodeProprio'];
    		// Affichage de la page normalement 
    	}
    else 
    { echo 'Vous n\'avez pas accès à cette page';
    } 
    ?>
    Notice: Undefined variable: CodeProprio in c:\program files\easyphp\www\projetgite\adherent\modif.php on line 65
    Merci d'avance

  5. #5
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    A mon avis le problème serait lié (indirectement) à la structure du site, qui, au feeling comme ça serait proche d'un site statique.
    La cookie de session serait lié (défini) uniquement pour le fichier "rechercheproprio.php" et non aux autres, même chose pour tous les autres fichiers.

    Il faudrait (peut être) définir du coté de la session que le cookie sera lié à l'ensemble du site, du path et du domaine.
    Regarde d'ailleurs dans ton navigateur, si c'est le cas tu devrais avoir plusieurs cookies de sessions concernant ton site (localhost vu que tu est en local).

    Si c'est le cas toujours, pour ce faire on peu soit définir cela dans un fichier .htaccess soit en Php avec la fonction session_set_cookie_params().

    Essai dans un 1er temps de le faire en Php, de rajouter ce code ci-dessous à tous les fichiers ayant un session_start() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    session_set_cookie_params(0, '/', 'localhost', FALSE, TRUE);
    session_start();
    ?>
    Aussi, pour vérifier le comportement des session, tu peux rajouter l'affichage du nom et de la valeur de la session.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'name:'.$session_name().' | id:'.session_id();
    Le nom doit toujours être le même (par défaut PHPSESSID) et l'ID de la session doit aussi restée la même.
    Si l'ID change, alors c'est qu'il y a un problème, Php a créé une autre session.

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Par défaut
    Il faudrait le code complet car on voit pas ce qui se passe à la ligne 65 de l'erreur.

    Sinon tu as testé ton $_POST['CodeProprio'] ? Car je vois pas la balise fermante de ton </form> ... Il se peut que ta session soit toujours vide car ton POST fonctionne pas.

  7. #7
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2011
    Messages : 64
    Par défaut
    Et bien voilà , merci RunCodePhp avec ta solution cela fonctionne...

    Du coup, lorsque je mettrais mon site en ligne je remplacerais bien localhost par l'adresse ip du serveur ?

Discussions similaires

  1. Variable comme nom de variable session
    Par mike12z dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2011, 23h44
  2. Problème de duplication de variables session
    Par boubsa dans le forum Langage
    Réponses: 5
    Dernier message: 10/05/2006, 16h49
  3. Problème pour les variables de session
    Par brotelle dans le forum Langage
    Réponses: 11
    Dernier message: 20/04/2006, 11h22
  4. [xmlrad]problème avec la variable session
    Par ekmule dans le forum XMLRAD
    Réponses: 5
    Dernier message: 22/02/2006, 13h22
  5. [CGI]problème update de variable de session
    Par LE NEINDRE dans le forum Web
    Réponses: 1
    Dernier message: 18/10/2005, 10h50

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