Enregister informations sessions en php

Résolu/Fermé
Fuji60 Messages postés 23 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 8 juin 2014 - 22 août 2012 à 14:03
Fuji60 Messages postés 23 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 8 juin 2014 - 23 août 2012 à 12:29
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

Utilisateur anonyme
22 août 2012 à 14:30
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
0
Fuji60 Messages postés 23 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 8 juin 2014 1
22 août 2012 à 15:04
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.
0
Utilisateur anonyme
22 août 2012 à 15:11
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.
0
Freedomsoul Messages postés 509 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 avril 2013 97
22 août 2012 à 15:42
Et les cookies alors ? :O
0
Freedomsoul Messages postés 509 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 avril 2013 97
22 août 2012 à 15:42
UNE BASE DE DONNéE AVEC DES COOKIES ! Idée géniale !
0
Utilisateur anonyme
22 août 2012 à 15:46
Beaucoup plus limités, moins fiables. Et pas toujours autorisés.
0
Freedomsoul Messages postés 509 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 avril 2013 97
Modifié par Freedomsoul le 22/08/2012 à 15:51
Petite plaisanterie °°
Mais ça peut etre utile selon ce qu'on veut faire :)
0
Fuji60 Messages postés 23 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 8 juin 2014 1
22 août 2012 à 15:22
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
22 août 2012 à 15:26
Si, c'est tout à fait possible.
En supposant que ton nom soit dans $nom :

<input type="text" name = "nom" value="<?php echo htmlentities($nom) ?>" />
0
Fuji60 Messages postés 23 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 8 juin 2014 1
22 août 2012 à 17:51
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) ');
0
Freedomsoul Messages postés 509 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 avril 2013 97
22 août 2012 à 18:35
quand l'utilisateur se connecte, tu récupères ce que t'as besoin et tu le mets dans ta variable SESSION
0
Fuji60 Messages postés 23 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 8 juin 2014 1
22 août 2012 à 21:19
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 :)
0
Utilisateur anonyme
23 août 2012 à 08:04
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));
0
Fuji60 Messages postés 23 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 8 juin 2014 1
23 août 2012 à 12:29
Merci Beaucoup !!

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

A+ :)
0