Enregister informations sessions en php

Résolu
Bonjour à tous,

alors ca fait depuis quelque temps que je n'arrive pas à régler un problème, et donc j'ai décidé de demandé de l'aide sur le forum.

Le problème est que lorsqu'un membre s'inscrit sur le formulaire, il donne des informations. Ce que je voudrais faire, c'est enregistrer ces informations ( Le prenom, le nom, et l'e-mail ), pour ensuite l'afficher sur son compte, pour qu'il puisse s'il veut le modifier.

Le formulaire fait appelle a une page appelé traitement.php qui traite ces informations.
J'ai d'abord penser à mettre sur cette page traitement.php :

$_SESSION=$_POST["nom"];
$_SESSION=$_POST[prenom"];
etc...

Mais cela n'enregiste pas complètement les informations, elle les affiches juste lors de la première connection. Lors de la deuxième connection, les informations sont oubliés et ca affiche une erreur, comme quoi, $_POST(suivi de la variable) n'a pas été identifié, donc qu'elle n'existe pas.

En espérant avoir été assez clair, merci d'avance.

10 réponses

  1. Bonjour

    Il faut faire:
    $_SESSION['nom']=$_POST["nom"]; 
    $_SESSION['prenom']=$_POST[prenom"]; 

    De plus, il faut appeler session_start(); au début de chaque page
    Et enfin, c'est $_SESSION qui est conservé, pas $_POST. Ça veut dire que dans une autre page, il faudra utiliser $_SESSION[nom'], etc... pour récupérer les valeurs qu'il y avait initialement dans le formulaire
    1. Merci d'avoir répondu,

      effectivement, mais lorsque je fait cela, j'ai la même erreur. C'est incompréhensible car je pense que ce que vous venez de dire est la solution au problème. $_SESSION est conservé que lors de la première connection, mais lors de la deuxième connection, elle oublie les variables $_SESSION que j'ai définie.

      Je les définis seulement sur la page traitement.php, mais lorsque le membre se connecte et visite le site, se déconnecte, etc...il ne fait plus jamais appelle à cette page. Je me demandais si le problème venait de la.
      1. Je ne suis pas sûr que nous parlions de la même chose.
        Parles-tu de variables à conserver quand un visiteur va de page en page sur ton site sans refermer le navigateur ? Si c'est oui, on parle bien de session.

        Parles-tu de variables que tu voudrais pouvoir ré-afficher quand ton visiteur a refermé son navigateur et revient visiter son site plus tard ? Là les sessions ne suffisent pas, il faut utiliser une base de données.
        1. Et les cookies alors ? :O
        2. UNE BASE DE DONNéE AVEC DES COOKIES ! Idée géniale !
        3. Beaucoup plus limités, moins fiables. Et pas toujours autorisés.
        4. Petite plaisanterie °°
          Mais ça peut etre utile selon ce qu'on veut faire :)
      2. Ah très bien, alors on parle donc de base de données ^^)

        Alors le mieux serait de faire un code qui se connecte à la base de données, et qui lui demande donc " Va chercher le prenom de l'id, et affiche le " c'est bien ca ?
        La base de données est dêja faite, mais le problème est que je veut afficher les informations sur un input, et qu'elle sera contenue pas un value. Je ne pense pas que ce soit possible si ?
        1. Si, c'est tout à fait possible.
          En supposant que ton nom soit dans $nom :

          <input type="text" name = "nom" value="<?php echo htmlentities($nom) ?>" />
          1. Ah oui je vois ce que vous voulez dire, mais lorsque j'affiche le nom et le prenom, il m'affiche essentiellement les informations du premier membre. Ce que je voudrais faire, c'est afficher les informations en fonction de l'id.
            Dans ma requête, je ne peux pas mettre :

            $req = $bdd->query('SELECT * FROM membres WHERE Email ( et faire une concaténation avec $_SESSION) ');
            1. quand l'utilisateur se connecte, tu récupères ce que t'as besoin et tu le mets dans ta variable SESSION
              1. Oui effectivement. Mais ce que je veux récupérer, c'est le prénom, le nom, et l'e-mail. L'e-mail se récupère très facilement car elle est utilisé lors de la connection. J'utilise Session et le tour est joué. Maintenant, le problème est de récupérer les informations donc, le prénom et le nom qui eux sont émit lors de l'inscription et non lors de la connection. Face à ce problème, le père m'a demandé d'utilisé la base de données et il avait raison. Donc mon problème réside sur mon message précédent, c'est donc : afficher le nom de la personne qui se connecte, donc en fonction de son id ;)
                Merci d'avoir répondu dans tous les cas :)
                1. L'e-mail se récupère très facilement car elle est utilisé lors de la connection
                  Pour retrouver la ligne correpondnat à un email donné dans ta base, WHERE Email ne suffit pas.

                  Si ton champ s'appelle Email dans ta base, et que la variable php qui contient l'email s'appelle $emailaverifier :

                  $req = $bdd->prepare('SELECT * FROM membres WHERE Email = ?);
                  $req->execute(array($emailaverifier));


                  Si tu as aussi un mot de passe à vérifier en même temps, tu peux faire

                  $req = $bdd->prepare('SELECT * FROM membres WHERE Email = ? AND mdp = ?);
                  $req->execute(array($emailaverifier,$motdepasseaverifier));
                  1. Merci Beaucoup !!

                    Problème résolu. Merci encore d'avoir pris le temps de répondre.

                    A+ :)