Session en php

Fermé
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 - 30 août 2008 à 11:48
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 - 4 sept. 2008 à 16:17
Bonjour tt le monde!!

je travaille actuellement sur une application dans laquelle je dois insérer dans ma base des données en provenance de plusieurs formulaires!!
je voulais le faire avec les sessions mais je n'ai pas encore réussi!! franchement j'arrive pas à bien comprendre leur fonctionnement!!

j'en ai besoin d'un exemple concret sur l'utilisation des sessions: comment les données d'un formulaire sont sauvegardées en passant par autres formulaires jusqu'à arriver à l'étape finale (le dernier formulaire) où on trouve un bouton ajouter pour envoyer la totalité des informations vers ma BD!!

merci d'avance et très bon week-end :-)

30 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 août 2008 à 12:22
Pour cela pas besoin des sessiosn obligatoirement.

Tu peux faire autrement:

dans le deuxième formulaire, tu mets des <input type="hidden" name="meme_name que_champ1_page1" value="<?php echo $_POST['name_champ1_page1']; "?>>

et ainsi de suite pour les autres pages

dans la derbiere page tu aura un certain nombre de champ cachés mais ça ne gène pas, il seront envoyés au script d'enregistrement
1
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 1
30 août 2008 à 13:02
merci bien!!
je vais testé mnt ce que tu viens de me donner!!

en fait j'ai une autre question à poser!! est ce que dans un formualire on peut avoir 2 actions à la fois: par exemple une action qui permet de faire une opération d'insertion et l'autre pour passer à l'autre page!! ces 2 actions se passent en même temps!!!
merci
bonne journée!!
0
oujdaoujda Messages postés 82 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 31 août 2010 3
30 août 2008 à 13:43
oui Mlle on peut le faire , par exemple tu fais un boutton ,ca tu le sais faire
<input type="submit" name="envoyer" value="envoyer">.
a la fin de votre code tu ecrit
if(isset($_POST['envoyer'])) {
/* alors la tu insert ce que tu vx dans votre base de donnees*/
et bien sur tu as la formulair comme ca je crois
<form method="post" action=" /*là tu met le nom de la page ou tu vx aller*/par exemple page2.php"/>
et pour la premiere question ,j'ai pas bien compris Mlle
0
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 1
30 août 2008 à 13:50
re salut
merci oujdaoujda pour ta réponse!!
mais ce que tu viens de me dire est une chose fatale en php!! désolée mais tu m'as rien ajouté de plus !!
peut être que tu n'as pas bien pigé ma question mais dans tous les cas merci de vouloir m'aider et bon week end!
0

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

Posez votre question
oujdaoujda Messages postés 82 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 31 août 2010 3
30 août 2008 à 13:55
derien mais d'apres ta 2eme question je crois que ca il faut faire sinon explique moi correctement Mlle
et dsl si j t'ai dérangé
0
oujdaoujda Messages postés 82 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 31 août 2010 3
30 août 2008 à 14:06
merci Mlle d'avoir repondre
et bn courage pout ton application
0
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 1
30 août 2008 à 14:29
merci c'est gentil de ta part :-) et bon week end
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 août 2008 à 14:34
est ce que dans un formualire on peut avoir 2 actions à la fois: par exemple une action qui permet de faire une opération d'insertion et l'autre pour passer à l'autre page!! ces 2 actions se passent en même temps!!!

en même temps ? presque

en tout cas par la même action

dans action= du formulaire page1 tu mets page2.php

et dans le code page2.php tu mets

au debut
<?php

recuperation des valeurs postées par la page 1 et enregistrement dans la BDD

?>
et a la suite tu mets ton code html du formulaire de la page 2 tout simplement
0
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 1
30 août 2008 à 14:53
merci très bonne idée :-) je vais la tester!!
en fait en ce qui concerne :
<input type="hidden" name="meme_name que_champ1_page1" value="<?php echo $_POST['name_champ1_page1']; "?>> je l'ai fait mais ça n'a pas encore marché!! je vais essayer de résoudre le prob moi même sinon je demanderai peut être votre aide!!
merci encore fois d'avoir répondu à mes questions
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 août 2008 à 15:55
un petit exemple valant mieux qu'un gd discours:

page1.php
<html>
<form name="form1" action="page2.php">
<input type="text" name="nom" value="">
<br />
<input type="text" name="prenom" value="">
<br /><br />
<input type="submit" name="suite" value="Continuer vers page2">
</form>
</html>


page2.php
<html>
<?php
//recup valuers postees par form page1
if(isset($_POST['nom'])){ $nom=$_POST['nom'];}
if(isset($_POST['prenom'])){ $prenom=$_POST['prenom'];}
?>
<form name="form2" action="page3.php">
<input type="text" name="age" value="">
<br />
<input type="text" name="sexe" value="">
<!-- et les champs caches -->
<input type="hidden" name="nom" value="<?php echo $nom ; ?>">
<input type="hidden" name="prenom" value="<?php echo $prenom ; ?>">

<br /><br />
<input type="submit" name="suite" value="Continuer vers page3">
</form>
</html>

page3.php
<html>
<?php
//recup valuers postees par form page2
if(isset($_POST['nom'])){ $nom=$_POST['nom'];}
if(isset($_POST['prenom'])){ $prenom=$_POST['prenom'];}
if(isset($_POST['age'])){ $age=$_POST['age'];}
if(isset($_POST['sexe'])){ $sexe=$_POST['sexe'];}

?>
<form name="form2" action="page4.php">
<input type="text" name="ville" value=""><br />
<input type="text" name="code_postal" value="">
<!-- et les champs caches -->
<input type="hidden" name="nom" value="<?php echo $nom ; ?>">
<input type="hidden" name="prenom" value="<?php echo $prenom ; ?>">
<input type="hidden" name="sexe" value="<?php echo $sexe ; ?>">
<input type="hidden" name="age" value="<?php echo $age ; ?>">

<br /><br />
<input type="submit" name="suite" value="Continuer vers page4">
</form>
</html>

page4.php
<html>
<?php
//recup valuers postees par form page3
if(isset($_POST['nom'])){ $nom=$_POST['nom'];}
if(isset($_POST['prenom'])){ $prenom=$_POST['prenom'];}
if(isset($_POST['age'])){ $age=$_POST['age'];}
if(isset($_POST['sexe'])){ $sexe=$_POST['sexe'];}
if(isset($_POST['ville'])){ $ville=$_POST['ville'];}
if(isset($_POST['code_postal'])){ $code_postal=$_POST['code_postal'];}


//et on affiche pour verifier
echo "<br />Nom: ".$nom;
echo "<br />Prenom: ".$prenom;
echo "<br />Age: ".$age;
echo "<br />Sexe: ".$sexe;
echo "<br />Ville: ".$ville;
echo "<br />Code_postal: ".$code_postal;
?>

</form>
</html>
0
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 1
30 août 2008 à 15:57
merciiiiiiiiiiiiiiiii
et oui tu as tt à fait raison avoir un exemple sous les yeux c'est mieux et on comprend vite!!
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 août 2008 à 15:59
heu juste un petit oubli de ma part il faut en plus dans toutes les pages dans la balise <form ..... method="post">
0
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 1
30 août 2008 à 16:02
:-) merci!! t'inquiètes pas j'aurai remarqué que la méthode post manque
merciiiiiiiiii
0
oujdaoujda Messages postés 82 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 31 août 2010 3
30 août 2008 à 22:08
resalam
j'ai une remarque puisaque tu as dit tt heurs que tu travaille avec les session donc
pourquoi pas à chaque page tu declare start _session();
et comme ca au lieu d'ecrire chaque fois
if(isset($_POST['nom'])){ $nom=$_POST['nom'];}
on là ecrit uniquement une fois comme ca $_SESSION['nom']=$_POST['nom'];
et dans les autres pages tu ecris seulement $_SESSION['nom'];
et comme ca tu travaille avec les sessions
et je remercie le mec alain_42,pour ces explications
parceque meme moi je commence avec le php .
merci fati poue le sujet
0
aityahia Messages postés 5 Date d'inscription mercredi 6 août 2008 Statut Membre Dernière intervention 30 août 2008
30 août 2008 à 22:32
avec du javascript tu peut faire 100 submit si tu veut
voici un petit apperçu.

<script type="text/javascript">
  function function1
  {
 document.myform.action='action1.php';
   }
  function function2
  {
 document.myform.action='action2.php';
   }
..
..

</script>

</header>
<form name="myform" action="#" methode="post">
<input type="button" id="btn1" onclick="fonction1"/>
<input type="button" id="btn2" onclick="fonction1"/>
<input type="button" id="btn3" onclick="fonction1"/>
</form>
0
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 1
30 août 2008 à 23:23
re salut

pour oujdaoujda!! en fait j'ai essayé de travailler avec les sessions mais je n'ai pas réussi :-( d'ailleurs je sais pas exactement comment on fait pour garder les données qui appartiennent à un utilisateur précis???!!! par exemple dans mon cas j'ai 5 formulaires que l'utilisateur doit remplir! donc est ce que dans chaque formulaire je dois suvegarder ses données et les appeler par la suite dans le formialre qui suit??!! c'est ça que j(arrive pas à comprendre!!

merci encore une fois d'avoir répondu à mon prob et très bonne soirée
0
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 1
30 août 2008 à 23:29
c'est encore moi! mais cette fois c'est pour aityahia!! en fait j'ai pensé à utilisé du javascript !! moi j'ai utilisé window.show mais ça n a pas marché!!
en fait je viens juste d'utiliser le bout de code js que tu as donnée mais celui la encore n'a pas marché!! je n'ai aucune action??!!!
et merci pour ton aide :-)
bonne soirée
0
oujdaoujda Messages postés 82 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 31 août 2010 3
30 août 2008 à 23:51
reslama Mlle
pour les sessions sont utilisées pour simplifier la vie l'objectif principale est:par exemple on recupere une variable a partir d'un formulaire ,avec les sessions on peut appler cette variable n'importe ou dans notre page de notre site ou application voici un exemple
//la page 1
<?php
session_start();
?>
<html>
<body>
<form method="POST" action="page2.php">
votre nom <input type="text" name="nom"> <br>
votre prenom <input type="text" name="prenom">
<input type="submit" name="aller" value="envoyer">
</form>
// la page 2
<?php
session_start();
$_SESSION['nom']=$_POST['nom'];
$_SESSION['prenom]=$_POST['prenom'];
echo $_SESSION['nom'];
echo $_SESSION['prenom'];

?>
vous voyez que on peut afficher le nom dans le second formulaire et on peut le afiche dans le 3eme et le 4eme et le 5eme et.....
mais il faut tjr commencer notre code avec session_start();
j'espere cette fois j'ai un peu rajouter quelque chose,
0
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 1
31 août 2008 à 00:06
wi j'ai saisi ce que tu viens d'expliquer c'est intéressant!!
en fait ce que je veux encore savoir est ce que la notion des sessions nous garantit que les données résupérées tt au long de nos formulaires appartiennet à un utilisateur bien précis comme dans le cas des sites de commerce!!
merci :-)
0
oujdaoujda Messages postés 82 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 31 août 2010 3
31 août 2008 à 02:36
wi bien sur,
pour bien comprendre in visiteur se connecte php genre un numero pour cela grace à la fonction session_start()
ce numerp sert d'identifiant .
php transmet ce numero de page en page en utilisant un cookei
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
31 août 2008 à 21:58
En fait pour le mécanisme des sessions

le script php avec cree un identifiant de session qu'il envoie au navigateur de l'utilisateur et à chaque demande de nouvelle page par cet utilisateur l'identifiant est envoyé au script et ainsi les variables stockées dans $_SESSION sont propres à cet utilisateur(navigateur)

Mais avec les champs cachés comme j'ai proposé ça marche bien aussi.
0
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 1
31 août 2008 à 22:59
bonsoir Alain_42!!
merci pour ta réponse!! en fait oui j'ai utilisé ta méthode et ca marche très bien!!

encore un souci à te proposer!! dans mon appli je dois récupérer les données issues d'un de mes formulaires qui est experiences.php!! dans celui la j'ai 7champs à remplir par l'utilisateur!
le prob que j'ai c'est qu'un utilisateur peut ajouter plusieurs experiences!! donc comment je peux gérer cela dans la page apperçu qui est un rappel de tous mes données?!! et comment puis je les envoyer à ma BD!!
merci et bonne soirée
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
31 août 2008 à 23:04
Bonsoir,

un utilisateur peut ajouter plusieurs experiences
comment fait-il ?

c'est bien toi qui lui propose un nouveau formulaire dès qu'il en a rempli un donc tu peux gerer ça
experience.php (comme page1.php)
experience2.php (comme page2.php)
etc..

et le recap comme page4.php
0
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 1
31 août 2008 à 23:46
re!
en fait si je faisais l'action d'insertion au nivaeu de chaque formulaire j'aura pu éviter ce prob puisque l'utilisateur remplit le forrmulaire et une fois il tape sue ajouter les données sont envoyées vers la base!! il fait cette opération autant de fois qu'il veut après avec un bouton suivant il passe au formlaire suivant!!
je ne sais pas si j'étais assez claire!! si ce n'est pas le cas je peux ré-expliquer tt à nouveau!!
merci pour ton attention
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 sept. 2008 à 10:01
Salut,

ok je vois tu as un formulaire avec deux boutons:

- un suivant (ou autre formulaire)
- un Terminé

et tu veux que si click sur suivant ça ouvre une nouvelle page de formulaire , autant de fois que l'on veut (sans perdre les valeurs des précédents)

et si click sur Terminé ça affiche un récapitulatif de tous les formulaires remplis et avec un bouton Enregistrer ça fasse l'enregistrement dans la BDD

C'est ça ?
0
fati.zahra Messages postés 74 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 5 juillet 2010 1
1 sept. 2008 à 11:32
bonjour Alain_42!! :-)

en fait je sais pas si on a les mêmes idées concerant ce prob !!mais je vais t'exepliquer pas à pas le fonctionnement de mes formulaires peut être on sera d'accord ts les deux:

l'utilisateur commence par saisir le form1 il s'agit en fait de ses données personnelles, une fois il termine il clique sur le bouton suivant qui le mène directement vers le form2 qui est experiences.php en sachant que je conserve mes données selon la méthode que tu m'as proposée avant pour faire un aperçu à la fin!!
et c'est là que commence mon prob!! au niveau de ce dernier form l'utilisateur a le droit de le remplir autant de fois qu'il veut mais après chaque remplissage il doit cliquer sur un un bouton ajouter afin de conserver ses données!! après ce clique les champs se vident à nouveau et on reste tjrs dans le même form!! une fois il termine il tape sur suivant pour passer ou form3 et ainsi de suite!!

à la fin de toutes ces insertions on doit voir sur son aperçu la totalité de ses expériences sous forme d'un tableau à ce moment là il peut cliquer sur envoyer pour l'enregistrement vers la base!!

j'éspère que cette fois j'étais plus claire!!

très bonne journée
-1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 sept. 2008 à 11:47
Ok c'est bien comme ça que j'avais compris

a part le premier form de données perso

J'ai commencé à regarder le code. Il faut passer par un système d'array pour mémoriser



Dès que j'ai qq chose et un peu de temps je te l'envoie
-1