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 :

Création d'un espace membre


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 29
    Points : 17
    Points
    17
    Par défaut Création d'un espace membre
    Bonjour,
    j'essaie de créer un espace membre sur mon site internet. Pour cela j'ai créé 3 pages:
    Mon session_start() est présente tout en haut de toutes mes pages, avant tout code html.

    1)Formulaire de création de session. Il fonctionne bien, lorsque la personne valide le formulaire les informations renseignées s'enregistrent correctement dans la base de données.
    Je créé alors mes variables de session.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // Création de la session.
    $_SESSION['pseudo'] = $_POST['pseudo'];
    $_SESSION['pass'] = $pass_hache;
    2)Login: Permet d'afficher "Bonjour 'pseudo'!" lorsque la personne est connectée et "Vous n'êtes pas connectée" lorsqu'elle ne l'est plus.
    Ca ne fonctionne pas, j'obtiens "bonjour !" (absence du pseudo) qd la personne est connectée et "Vous n'êtes pas connectée" lorsqu'elle ne l'est plus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    if($_SESSION) {
    echo '<p id="connect">Bonjour '.$_SESSION['pseudo'].'.</p>';
    }
    else {
    echo '<p id="connect">Vous n\'êtes pas connecté.</p>';
    }
    ?>

    3) logout: permet de fermer sa session membre, ca fonctionne comme prévu.
    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
     
    <?php
    // Démarrage de la session.
    session_start ();
     
    // Destruction des variables de la session.
    session_unset ();
     
    // Destruction de la session. 
    session_destroy ();				
     
    //Redirection 
    header('Location: ../html/accueil.php');
     
    exit();
    ?>
    Merci pour l'aide!

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 107
    Points : 139
    Points
    139
    Par défaut
    Bonjour,

    A première vu, ton code semble juste. As-tu vérifié que $_POST["pseudo"] contient bien les informations validés via le formulaire de création ?

    Darkauron
    Darkauron

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Ra la la!!
    c'était trop bête, le code que je viens de mettre est bon, par contre j'avais mal orthographié mon $pass_hache sur ma page ouverture. Je ne cherchais pas l'erreur sur la bonne page en clair!!
    Petite dernière question : Pour écrire proprement, il faut mettre la fonction session_start() avant le <!DOCTYPE html><html lang="fr"><head> ou bien juste après la balise <body>???

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 107
    Points : 139
    Points
    139
    Par défaut
    Il me semble qu'il faut le mettre au tout début du fichier, au dessus du <head>. Par contre, je suis pas sûr par rapport au Doctype. A vérifier.

    Darkauron
    Darkauron

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 144
    Points
    144
    Par défaut
    Bonjour,

    Il faut mettre le session_start avant que le moindre caractère n'ai été envoyé en réponse au client.
    Que ce soit une balise DOCTYPE, head ou encore body ne change rien du tout.
    Il faut bien comprendre que session_start va modifier les headers de la réponse HTTP et que les echo et print vont initier son contenu.
    On ne peut tout simplement pas modifier les headers de la réponse HTTP une fois son contenu commencé.

    Une fois ce principe compris on comprend bien que le nom de la balise importe peu

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 386
    Points : 10 413
    Points
    10 413
    Par défaut
    Il faut mettre le session_start avant que le moindre caractère n'ai été envoyé en réponse au client.
    ... et aussi avant l'utilisation ou la définition de variables de session. Même si cela paraît évident il faut s'en souvenir car c'est une erreur assez courante au début.

    Sinon concernant la sécurité on enregistre en session que les valeurs indispensables au fonctionnement du script. Normalement session login est unique et suffit pour identifier le client, donc inutile d'avoir une variable de session avec le pass si tu ne l'utilise pas. Dans certaines conditions les sessions peuvent être piratées donc autant éviter d'y enregistrer des informations confidentielles non indispensables.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Grace à vous les sessions membres n'ont plus de secrets pour moi!!
    Merci pour toutes ces précisions, je prends note.
    Merci pour cette info ABCIWEB, je vais supprimer ma session pass, elle ne sert à rien étant donné que chaque pseudo est unique, il ne peut donc correspondre qu'à un seul membre.

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

Discussions similaires

  1. [MySQL] Erreur ( création d'un espace membre )
    Par thomas767 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 27/04/2014, 21h12
  2. [MySQL] Création d'un espace membre PHP, PDO
    Par reverb94 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/05/2013, 19h07
  3. [Blog] Création avec espace membre
    Par danydan01 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 13/05/2011, 11h25
  4. [MySQL] création d'un espace membre
    Par zup17 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/02/2011, 14h20
  5. Création d'un espace membre
    Par zoneech dans le forum Langage
    Réponses: 16
    Dernier message: 24/12/2008, 20h07

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