[Php] problemes avec $_Session
Résolu
julie
-
julie -
julie -
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,
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,
A voir également:
- [Php] problemes avec $_Session
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
17 réponses
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
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
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?
pourquoi ne pas faire simplement comme ça :
puis
?
<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"]; ?>
?
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?
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?
Bonjour,
juste une petite question :
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
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
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é!
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é!
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
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
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"] !
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"] !
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
Merci
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! =)
Merci tout deviens plus clair! =)
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...
<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...
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>';
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>';
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...).
J'espère que c'est clair... ? ^^'
Monkey Monk
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