Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/05/2006, 15h30   #1
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
Par défaut Garder une variable tout en revenant en arrière

bonjour à tous

je voudrais pouvoir garder une variable d'un formulaire en revenant en arriere puis en revenant sur la page récapitulatif

exple :

page 1 ==> formulaire

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<?
session_start();
 
echo "<html>
<form method = 'POST' action = panier2.php>
<input type = text name = nom>
<input type = text name = prenom>
<input type = submit>
</form>
</html>";
?>
page 2 ==> récapitulatif des données
Code :
1
2
3
4
5
6
7
8
9
10
11
 
<?
session_start();
 
$nom =$_POST['nom'];
$prenom = $_POST['prenom'];
echo $nom;
echo $prenom;
 
echo "<a href = page1.php>Retour</a>";
?>
en faite ce que je voudrais est que si je remplis seulement le champs 'nom', (je valide) que je reviens en arriere (donc je reviens sur la page 1), je remplis le champs 'prenom', que je valide, il faudrais que sur la page 2 j'ai le nom et le prenom (le nom a été remplis avant le prenom)

donc si quelqu'un à une idée..

merci beaucoup
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2006, 15h45   #2
Membre éprouvé
 
Inscription : février 2004
Messages : 456
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 456
Points : 428
Points : 428
Salut,

Comme tu utilises les sessions, utilise les variables de session.
billoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2006, 15h46   #3
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
Ajoute l'attribut value à tes input comme ceci:
Citation:
<?php
session_start
();

echo <<< blocHtml
<html>
<form method="post" action="panier2.php">
      <input type="text" name="nom" value="
{$_SESSION['nom']}" />
      <input type="text" name="prenom" value="
{$_SESSION['prenom']}" />
      <input type="submit" value="Envoyer" />
</form>
</html>
blocHtml;?>
Colorez votre code PHP sur les forums grâce à Developpez.com
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2006, 16h15   #4
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
pour le bloc html, j'ai oublié de le mettre en faisant mon copié collé

en faite je veux juste que ça garde en memoire le nom et que ça ne s'affiche pas dans la page 1 et quand le prenom est rempli dans le champs, à la page 2 le nom + prenom sont affichés.


c'est juste un test que je fais car mon but c'est faire un panier
donc en faite, pour mon projet, c'est que quand une personne met des article dans un panier, et qu'après qu'il retourne sur le site pour pouvoir acheter d'autres articles, il retrouve dans son panier les articles qu'il a avant mis + les nouveaux articles

c'est pour cela que je fais ce petit exercice
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2006, 17h05   #5
Membre confirmé
 
Avatar de Julien.alkaza
 
Inscription : octobre 2004
Messages : 240
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : octobre 2004
Messages : 240
Points : 240
Points : 240
Envoyer un message via MSN à Julien.alkaza
FAut que tu stocke ca dans une BDD....
Sinon, si une personne achete 100 articles, il y aura 100 variable de session...En plus tu ne peux pas savoir à l'avance combien d'article une personne va acheter!
Tu fais un Table ou tu mets en correspondance un article et une personne...

Voilà ce que j'en dis!
__________________
Admin Réseaux & Systèmes.

Red Hat Certified Technician...#604006101698235
Julien.alkaza est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2006, 17h41   #6
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
ça je verrais après, j'essaye dejà de faire le petit exercice
(j'ai enlevé le champs prenom j'ai juste gardé le champs nom)
bon quand je renseigne le champs nom dans la page 1, je vais à la page 2, puis je retourne à la page 1, ma session marche bien.
mais si je veux renseigner un autre nom, et bien ma 1ere session n'existe plus.
en faite ce que je voudrais c'est pouvoir garder tous les noms des différentes sessions.
par exemple :
je tape "dupont", je vais à la page 2 (il apparait bien "dupont"), puis revient à la page 1, je tape "durand" puis je vais à la page 2 (il apparait que "durand" et pas "dupont") et c'est sur cette page que je voudrais voir "dupont" et "durand"

page 1 :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?
session_start();
if (isset ($_SESSION['nom']))
{
  $_SESSION['nom'];
  echo $_SESSION['nom'];
echo "<html>
<form method = 'POST' action = panier2.php>
<input type = text name = nom>
<input type = submit>
</form>
</html>";
?>
page 2 :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<?
session_start();
if (!empty ($_POST['nom']))     // si champs nom renseigné
{
$nom =$_POST['nom'];
}
if (isset($_POST['nom']))
{
  $_SESSION['nom'] = $_POST['nom'];
}
 
if (isset($_SESSION['nom']))
{
echo $_SESSION['nom'];
}
?>
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2006, 17h59   #7
Membre éprouvé
 
Inscription : février 2004
Messages : 456
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 456
Points : 428
Points : 428
Essaie en déclarant la variable de session comme un tableau:
Code :
$_SESSION['nom'][] = $_POST['nom'];
Puis tu parcoure le tableau pour les echo.

chuis pas du tout sûr que ca marche
billoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2006, 19h30   #8
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
comprends pas trop là..
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2006, 20h59   #9
Membre éprouvé
 
Inscription : février 2004
Messages : 456
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 456
Points : 428
Points : 428
Dans page2, tu fais:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
session_start();
if (!empty ($_POST['nom']))     // si champs nom renseigné
{
$nom =$_POST['nom'];
}
if (isset($_POST['nom']))
{
  $_SESSION['nom'][] = $_POST['nom'];
}
 
if (isset($_SESSION['nom']))
{
echo $_SESSION['nom'];
} ?>
Comme $_SESSION['nom'] est un tableau, t'as plus qu'à le parcourir pour récupérer toutes les valeurs.
billoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2006, 21h09   #10
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
ceci ne marche pas
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2006, 21h30   #11
Membre émérite
 
Inscription : juin 2002
Messages : 1 013
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 013
Points : 959
Points : 959
je n'ai pas trop suivi, mais
  • je suis étonné que tu contrôles d'abord si $POST['nom'] est vide, et ensuite seulement s'il existe
  • j'aurais remplacé $_SESSION['nom'][] par $_SESSION['nom'], ou si tu désires que ce soit un tableau $_SESSION['nom'][0]
francis m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2006, 23h35   #12
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
c'est
je reexplique

page 1 =
je remplis le champs nom (exple : dupond)

page 2 =
dupond s'affiche

puis je reviens sur la page 1, avec la session, dupond s'affiche

je reremplis le champs nom = durand
je revisn sur la page 2 et seul durand s'affiche

ce que je voudrais c'est que dupond et durand s'affichent sur la page 2 et non durand seul
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 00h46   #13
Membre émérite
 
Inscription : juin 2002
Messages : 1 013
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 013
Points : 959
Points : 959
sorry j'avais pas lu toute la discussion

primo oui c'est le if(!empty) avant le if(isset) qui m'étonne.

secundo, pour ton problème : oui la solution de billoum parait être la bonne : chaque fois que ton client valide ton formulaire, tu enregistres le nom dans un tableau

je ne sais plus si l'instrucion $_SESSION['nom'][] augmente à chaque fois d'un indice. si c'est le cas, cela devrait fonctionner tel quel. sinon, utilise $_SESSION['nom'][$n] et tu incrémente $n à chaque fois que tu passes dans le formulaire. pour ce faire, il faut bien sûr que $n soit également une variable de session !

bien sûr, dans ton formulaire, tu dois créer une boucle pour afficher tous les noms déjà enregistrés, donc
Code :
for ( $i = 0, $i <= $n, i++ ) echo $_SESSION['nom'][$i];
tout en gardant le input name = nom et le input submit.

Si tu souhaites que ton client puisse changer les noms déjà enregistrés, il faut que ta boucle fasse un echo avec des inputs. assures-toi que les name diffèrent à chaque fois (par exemple name = nom$i) et n'oublie pas de gérer les modifications. dans ton cas, pour tes essais, fais cela dans une seconde phase de développement de ton script
francis m est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h17.


 
 
 
 
Partenaires

Hébergement Web