[Php] problemes avec $_Session

Résolu/Fermé
julie - 2 juil. 2009 à 09:42
 julie - 2 juil. 2009 à 11:03
Bonjour,

Je suis en train de m'amuser un peu avec du php mais je rencontre quelques soucis. Je suis en train de faire un formulaire et je souhaiterais qu'une fois le formulaire envoyé on me donne un résumé des informations entrée.
<?php
session_start();
echo '
<form method="post" action="resume.php" enctype="multipart/form-data>
<p>Nom : </p> <input type="text" name="name" value=""/>';
echo'<br />
<p>Prenom: </p> <input type="text" name="prenom" value=""/>';
$_SESSION["ses_prenom"] = $_POST["prenom"];
echo'<br />
<p>age: </p> <input type="text" name="age" value=""/>';
echo'
<input type="submit" name="envoyer" value="envoyer" />
</form>';
session_close();
?>

Tout d'abord j'ai une fatale error sur le session_close qui me dit qu'il appelle une undefined fonction et le formulaire pour la demande de nom ne s'affiche pas et je ne comprend pas vraiment pourquoi.

Dans la seconde page j'ouvre la session (même erreur sur close) et je fais un (qui n'affiche pas le prenom):
<?php
session_start();
echo ' mon prenom est : . $_SESSION["ses_prenom"];
session_close();
?>

Merci pour votre aide,

17 réponses

resalut Messages postés 784 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 21 janvier 2010 55
2 juil. 2009 à 09:45
je ne comprend pas pk tu met session_close();

ensuitte si tu souhaite transmettre des données sur plusieurs pages en sessions il te faut d abord traiter l envoi du formulaire pour y mettre les donnees en sessions
0
Il ne faut pas fermer la session que l'on a ouverte? Par ailleurs je souhaiterais que les données entrée dans le formulaire apparaissent dans la seconde fenêtre. Tu entends quoi par traiter?
0
resalut Messages postés 784 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 21 janvier 2010 55
2 juil. 2009 à 09:51
et bien au postage du formulaire les recuperer et les mettre dans des sessions
0
Utilisateur anonyme
2 juil. 2009 à 09:53
pourquoi ne pas faire simplement comme ça :


<form method="post" action="resume.php" enctype="multipart/form-data>

<p>Nom : </p> <input type="text" name="name" value=""/>
<br />
<p>Prenom: </p> <input type="text" name="prenom" value=""/>
<br />
<p>age: </p> <input type="text" name="age" value=""/>

<input type="submit" name="envoyer" value="envoyer" />

</form>



puis

<?php
echo ' mon prenom est : '.$_POST["prenom"];
?> 

?
0

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

Posez votre question
Car je veux ça arrive sur une autre page, et pour cela si j'ai bien compris il faut passer par les sessions.

je dois donc faire un truc du genre :
if (isset ($_POST["envoyer"]))
{
$_SESSION['ses_prenom'] = $_POST['prenom'];
}
Enfin ça ne dois pas être ça car ça ne fonctionne pas mieux.

Sinon effectivement en supprimant le session_close() je n'ai plus d'erreur, il n'est pas nécessaire de mettre un truc pour fermer quand on ouvre une session?
0
monkey_monk Messages postés 641 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 10 août 2012 125
2 juil. 2009 à 10:29
Bonjour,

juste une petite question :

je veux ça arrive sur une autre page


Pourquoi n'envoies-tu pas ton formulaire à cette "autre page" ?

Tu fais le traitement et tu affiches ce que tu veux sans passer par les sessions... les sessions me semblent inutiles dans ton cas.

Sauf question d'écolage bien entendu ! ;)


Monkey Monk
0
Han parfait effectivement, je pensais qu'il n'y avait pas d'autres moyens car en cours nous avions fait ainsi.

Donc si d'autres ont besoin, il suffit de passer un $_POST['prenom'] dans le echo de la seconde page.
Pour ma curiosité, dans quel cas j'aurais eu besoin de session car nous en avons utilisé que dans ce cas où c'est visiblement inutile...
Si j'avais voulu récupérer ces données dans plusieurs pages ou récuperer des données qui ne sont pas saisies par un formulaire par exemple j'en aurais eu besoin?

En tout cas Merci tout les trois pour m'avoir aidé!
0
monkey_monk Messages postés 641 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 10 août 2012 125
2 juil. 2009 à 10:41
Ah ! Encore une question...

Qu'est-ce que tu fais te des données ? Tu les stock ? Si oui, où ?

Parce que si tu as une DB... CQFD ! ^^


Monkey Monk
0
resalut Messages postés 784 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 21 janvier 2010 55
2 juil. 2009 à 10:41
genre pour une identification les sessions sont pratiques
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
2 juil. 2009 à 10:42
Heu
tu mets ton $_SESSION["ses_prenom"] = $_POST["prenom"]; dans la page de ton formulaire !
donc forcément, $_POST["prenom"] n'existe pas dans cette page !
c'est dans la page de traitement de ton formulaire (resume.php) qu'il faut faire le $_POST["prenom"] !
0
Une dernière petite chose, dans mon formulaire je disais que le premier champ ne s'affiche pas, je suppose que j'ai du faire une connerie avec le echo mais je n'arrive pas à la trouver donc bin si je peux encore vous faire perdre 5min ça me serait bien utile.

Merci
0
resalut Messages postés 784 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 21 janvier 2010 55
2 juil. 2009 à 10:43
recolle ton nouveau code stp
0
Ah d'accord c'est vrai! Merci, donc si je veux quand tout ceci fonctionnera créer une BDD afin de stocker ce que je rentre en utilisant $_POST je vais devoir écrire toutes mes requêtes dans la page résumé je suppose?

Merci tout deviens plus clair! =)
0
echo '
<form method="post" action="recapitulatif.php" enctype="multipart/form-data>'.'
<p>Nom : <input type="text" name="name" value=""/></p>';
echo'<br />
<p>Prenom: <input type="text" name="prenom" value=""/></p>';
echo'<br />
<p>Age: <input type="text" name="age" value=""/></p>';
echo'
<input type="submit" name="envoyer" value="envoyer" />
</form>';


Et la page résumé:

echo 'le prenom saisi est : '.$_POST['name']. '<br />';

Et donc le champ nom ne s'affiche pas donc il n'est probablement pas pris dans le echo...
0
resalut Messages postés 784 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 21 janvier 2010 55
2 juil. 2009 à 10:52
Echo '<form method="post" action="recapitulatif.php" enctype="multipart/form-data"><p>Nom : <input type="text" name="name" value=""/></p>';
echo'<br /><p>Prenom: <input type="text" name="prenom" value=""/></p>';
echo'<br /><p>Age: <input type="text" name="age" value=""/></p>';
echo'<input type="submit" name="envoyer" value="envoyer" /></form>';
0
Il ne s'affiche toujours pas, j'essaye de mettre un second echo mais ça ne change rien.
0
monkey_monk Messages postés 641 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 10 août 2012 125
2 juil. 2009 à 10:54
Heu... disons que si c'est juste pour un "résumé de confirmation" tu peux simplement récupérer tes données via la page de traitement de ton formulaire (ici resume.php).

Cette dernière traite le form, utilise ou non une DB/utilise ou non les sessions, puis affiche le résumé.
Pour cet affichage, c'est à toi de voir... pour ma part j'utiliserais $nom pour $nom=$_POST['nom']... ce qui me permettrais d'afficher la valeur après un traitement quelconque (suppression des espaces par exemple...).


/* 1.traitement du form, ajout DB ou autre */
/* 2.Affichage du résumé */


J'espère que c'est clair... ? ^^'



Monkey Monk
0
Je pense, je vais probablement m'en rendre compte cet après midi quand j'aurais créer ma bdd et que j'essayerais de d'ajouter à la base, supprimer et modifier sinon je pense que google et comment ça marche seront mes amis.

Merci beaucoup!
0