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

PHP & Base de données Discussion :

probleme de session_start [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 17
    Par défaut probleme de session_start
    Bonsoir ,
    Je suis en train de coder un formulaire d'inscription sur mon index.php qui renvoi sur membre.php , mais le probleme est que je n'arrive pas a garder la session ouverte , quand j'arrive sur membre .php les données normalement envoyées ne sont pas la , je vous met mes 2 codes :

    En vous remerciant :

    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
    
    <body>
    <?php
    /* il faut demarrer la session*/
    session_start();
    
    if (empty($_SESSION['id'])) //les membres connecte ne peuvent pas s'inscrire
    {
    /* il faut que toutes les variables du formulaires existent*/
    if(isset($_POST['pseudo']) && isset($_POST['mdp']) && isset($_POST['email']))
    {
    /*il faut que tous les champs soient renseignes*/
    if($_POST['pseudo']!="" && $_POST['mdp']!="" && $_POST['email']!="")
    {
    /*connexion a la BDD*/
    try
    {
    $bdd = new PDO('mysql:host=localhost;dbname=formulaire', 'root', '');
    }
    catch (Exception $e)
    {
    die('Erreur : ' . $e->getMessage());
    }
    
    /* on teste l'adresse email, si c'est bon, on continue, sinon, on affiche un message d'erreur*/
    if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}.[a-z]{2,4}$#", $_POST['email']))
    {
    /*on verifie si un membre ne possede pas deja le meme pseudo*/
    $req = $bdd->prepare('SELECT id FROM membre WHERE pseudo = :pseudo');
    $req->execute(array('pseudo'=> $_POST['pseudo']));
    $nb_resultats_recherche_membre=$req->fetch();
    
    if(!$nb_resultats_recherche_membre) /*si il n'y a pas de resultat*/
    {
    /*on crypte le mot de passe*/
    $mdp = sha1($_POST['mdp']);
    
    /*Si le pseudo est libre et l'email valide, alors on enregistre le nouveau membre*/
    $req=$bdd->prepare('INSERT INTO membre(pseudo, pass, email, date_inscription) VALUES(:pseudo, :pass, :email, CURDATE())');
    $req->execute(array('pseudo'=>$_POST['pseudo'], 'pass'=>$mdp, 'email'=>$_POST['email']));
    
    /* on demarre la session */
    session_start();
    
    /* on cree les variables de session du membre qui lui serviront pendant sa session*/
    $_SESSION['id']= $resultat['id'];
    $_SESSION['pseudo']= $pseudo;
    $_SESSION['mail']= $resultat['email'];
    
    
    header('Location: membre.php');
    }
    else
    {
    echo "Un membre possede deja ce pseudo";
    }	
    }
    else
    {
    echo "Votre adresse email n'est pas valide";
    }
    }
    else
    {
    echo "Il faut remplir tous les champs"; 
    }
    }
    else
    {
    echo "Une erreur s'est produite";
    }
    }
    else
    {
    echo "Vous n'avez pas le droit d'acceder a cette page";
    }
    ?>
    </body>
    </html>
    
    et
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
    
    <body>
    <?php
    session_start();
    echo "page membre";
    ?>
    <?php
    echo 'id : ',$_SESSION['id'],'
    
    mail : ',$_SESSION['mail'],'
    
    <form action="logout.php" method="post">
    <input type="submit" value="logout"/>
    </form>';
    ?>
    </body>
    </html>

  2. #2
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    tu dois mettre tes session_start() avant TOUT code html c'est pour ça que ça te met une erreur...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 17
    Par défaut
    J'ai pas de code html avant mon session_start , par contre ca ne me donne pas d'erreur c'est juste que mes champs sont vides dans membre.php

  4. #4
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    si tu as ça:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    hors du bloc de php c'est comme si tu faisais des "echo" dedans en fait donc ça empêche session_start() d'initialiser la session

    les erreurs ne s'affichent que si tu les autorise à le faire...
    les sessions c'est comme les headers ça se démarre au tout début de ton code

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 17
    Par défaut
    Tu le metterais ou session_start toi ? Dans d'autre de mes pages cela fonctionne bien comme ca

  6. #6
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    mets un:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php session_start()?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    comme ça rien n'est avant lui...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/07/2012, 16h30
  2. Session_start et probleme de mémoire
    Par steinfield dans le forum Langage
    Réponses: 1
    Dernier message: 17/06/2010, 20h30
  3. [MySQL] probleme dans session_start()
    Par yucef83 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/05/2009, 11h46
  4. probleme avec session_start
    Par Lenaick dans le forum Langage
    Réponses: 2
    Dernier message: 24/03/2009, 11h02
  5. probleme avec la fonction session_start()
    Par lauraincis dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 22/01/2009, 11h46

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