Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1351 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Session

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Session

n°1014291
skynicko
Posté le 16-03-2005 à 10:57:48  profilanswer
 

Bonjour
 
J'aimerai recuperer une variable de formulaire et l'enregistrer dans ma session. Quand j'envoie le formulaire en ayant au préalable rempli le champ montant, il m'affiche toujours la valeur "0" pour le montant.  
Je précise que la la page ou j' désire afficher la valeur du champ montant est la même que celle ou se trouve le champ.
Voici mon code :
 

Code :
  1. session_start();
  2. if(isset($_POST['montant']))
  3. {
  4. $_SESSION['montant'] = $_POST['montant'];
  5. }
  6. else
  7. {
  8. $_SESSION['montant'] = 0;
  9. }
  10. ...
  11. <?echo  $_SESSION['montant'];?>

mood
Publicité
Posté le 16-03-2005 à 10:57:48  profilanswer
 

n°1014294
skeye
Posté le 16-03-2005 à 11:02:20  profilanswer
 

skynicko a écrit :

Je précise que la la page ou j' désire afficher la valeur du champ montant est la même que celle ou se trouve le champ.


J'ai pas trop compris...[:urd]
Fais un print_r($_POST) en début de page...


---------------
Can't buy what I want because it's free -
n°1014295
baster_bas​ter
le savoir est une arme...
Posté le 16-03-2005 à 11:02:23  profilanswer
 

tu peu mettre le code de l'envoi par formulaire de ta variable montant stp...


Message édité par baster_baster le 16-03-2005 à 11:02:43

---------------
Pas le temps... Ou pas envie de le prendre ?
n°1014309
skynicko
Posté le 16-03-2005 à 11:13:25  profilanswer
 

Mon formulaire en fait il est traité par une autre page qui insere le montant dans une base de donnée et qui fait une redirection vers la page ou on a rempli le formulaire.
 
Je pensais qu'avec le code que j'ai mis plus haut ça suffisait pour recuperer la valeur de champ.


Message édité par skynicko le 16-03-2005 à 11:13:35
n°1014310
skeye
Posté le 16-03-2005 à 11:14:43  profilanswer
 

skynicko a écrit :

Mon formulaire en fait il est traité par une autre page qui insere le montant dans une base de donnée et qui fait une redirection vers la page ou on a rempli le formulaire.
 
Je pensais qu'avec le code que j'ai mis plus haut ça suffisait pour recuperer la valeur de champ.


euh oui mais si t'es plus sur la page cible de ton formulaire t'as plus rien dans $_POST hein!:o


---------------
Can't buy what I want because it's free -
n°1014314
skynicko
Posté le 16-03-2005 à 11:16:30  profilanswer
 

skeye a écrit :

J'ai pas trop compris...[:urd]
Fais un print_r($_POST) en début de page...


 
Je recharge tout le temps la même page.  
Sur ce shéma la :
 
monformulaire.php --> c'est sur cette page que se trouve le code que je vous ai posté plus haut.
 
traitementformulaire.php --> quand j'envoie mon formulaire cette page effectue une instertion dans la base puis un header("location" ) sur monformulaire.php.

n°1014316
skynicko
Posté le 16-03-2005 à 11:18:15  profilanswer
 

skeye a écrit :

euh oui mais si t'es plus sur la page cible de ton formulaire t'as plus rien dans $_POST hein!:o


Oui tu as raison. Est ce que je dois aussi mettre ce code dans la page qui traite mon formulaire ?
ou est ce que je dois mettre le code de traitement du formulaire dans la page du formulaire elle meme ?
J'ai du mal  :pt1cable:

n°1014318
skeye
Posté le 16-03-2005 à 11:18:25  profilanswer
 

skynicko a écrit :

Je recharge tout le temps la même page.  
Sur ce shéma la :
 
monformulaire.php --> c'est sur cette page que se trouve le code que je vous ai posté plus haut.
 
traitementformulaire.php --> quand j'envoie mon formulaire cette page effectue une instertion dans la base puis un header("location" ) sur monformulaire.php.


c'est bien ce que je dis. tu n'as plus rien dans $_POST une fois que tu fais une header("Location: monformulaire.php" ).
Donc ta méthode ne peut pas marcher...il faut que tu mettes le code que tu as posté dans traitementformulaire.php.


Message édité par skeye le 16-03-2005 à 11:19:16

---------------
Can't buy what I want because it's free -
n°1014325
skynicko
Posté le 16-03-2005 à 11:23:08  profilanswer
 

oh ça marche ça y est merci bien tout le monde pour votre aide

n°1014331
skynicko
Posté le 16-03-2005 à 11:35:25  profilanswer
 

J'en ai une petite derniere pour la route. Je recupere bien la valeur du champ montant que je peux promener de pages en pages.
Par contre j'aimerai aussi recuperer le numero de la commande qui lui est généré depuis la page de traitement du formulaire.
 
j'ai fait de cette manière mais je n'ai rien qui s'affiche :
 

Code :
  1. $_SESSION['paiement_num_facture'] = $_GET['paiement_num_facture'];


Message édité par skynicko le 16-03-2005 à 11:35:41
mood
Publicité
Posté le 16-03-2005 à 11:35:25  profilanswer
 

n°1014343
skeye
Posté le 16-03-2005 à 11:46:34  profilanswer
 

skynicko a écrit :

J'en ai une petite derniere pour la route. Je recupere bien la valeur du champ montant que je peux promener de pages en pages.
Par contre j'aimerai aussi recuperer le numero de la commande qui lui est généré depuis la page de traitement du formulaire.
 
j'ai fait de cette manière mais je n'ai rien qui s'affiche :
 

Code :
  1. $_SESSION['paiement_num_facture'] = $_GET['paiement_num_facture'];



 
Il est censé être envoyé à ta page comment, ton paiement_num_facture? Via le formulaire ou l'url?


---------------
Can't buy what I want because it's free -
n°1014352
skynicko
Posté le 16-03-2005 à 11:51:14  profilanswer
 

enfin tu parles il est envoyé comment depuis la page de traitement quand je reviens sur la pae du formulaire ?


Message édité par skynicko le 16-03-2005 à 11:52:01
n°1014353
baster_bas​ter
le savoir est une arme...
Posté le 16-03-2005 à 11:51:23  profilanswer
 

ben ouais si ca se trouve c'est le meme problème que la première :d


---------------
Pas le temps... Ou pas envie de le prendre ?
n°1014355
skeye
Posté le 16-03-2005 à 11:52:10  profilanswer
 


url pointant vers quelle page, et tu essaies de la récupérer dans quelle page?:o


---------------
Can't buy what I want because it's free -
n°1014358
skynicko
Posté le 16-03-2005 à 11:53:16  profilanswer
 

je pense pas parce que le paiement_num_facture il est pas envoyé en post

n°1014360
skeye
Posté le 16-03-2005 à 11:54:55  profilanswer
 

skynicko a écrit :

je pense pas parce que le paiement_num_facture il est pas envoyé en post


c'est pas pour ça que le tableau $_GET est toujours valide quand tu changes de page hein...[:itm]


---------------
Can't buy what I want because it's free -
n°1014368
skynicko
Posté le 16-03-2005 à 11:58:58  profilanswer
 

C'est le code de traitement de mon formulaire. C'est la que je veux recuperer la valeur de mon numero de facture pour l'enregistrer dans la session. Mais j'ai pas compris comment je dois faire.
 
Je debute, c'est les erreurs de jeunesses
 

Code :
  1. session_start();
  2. if(isset($_POST['montant']))
  3. {
  4. $_SESSION['paiement_num_facture'] = $_GET['paiement_num_facture'];
  5. $_SESSION['montant'] = $_POST['montant'];
  6. }
  7. else
  8. {
  9. $_SESSION['montant'] = 0;
  10. }
  11. if(isset($_GET['action']) && $_GET['action'] == 'ajout')
  12.     {
  13. if(!empty($_POST['montant']))
  14. {
  15. $montant = trim($_POST['montant']);
  16. mysql_select_db($database_dbprotect, $dbprotect);
  17. $query_factures="SELECT paiement_num_facture FROM tab_paiement ORDER BY paiement_num_facture DESC";
  18. $factures = mysql_query($query_factures, $dbprotect) or die(mysql_error());
  19. $lignes_factures = mysql_fetch_assoc($factures);
  20. $num_facture=$lignes_factures['paiement_num_facture']+1;
  21. $query_ins_paiement = "INSERT INTO tab_paiement(paiement_id, paiement_num_facture, paiement_montant) VALUES('','$num_facture','$montant')";
  22. mysql_query($query_ins_paiement) or die('Erreur SQL !'.$query_ins_paiement.'<br>'.mysql_error());
  23.  
  24.     header("Location:../accueil.php?erreur=envoye" );
  25. }


Message édité par skynicko le 16-03-2005 à 11:59:41
n°1014370
skeye
Posté le 16-03-2005 à 12:00:18  profilanswer
 

si tu appelles bien cette page en passant paiement_num_facture dans l'url ça doit marcher.


---------------
Can't buy what I want because it's free -
n°1014372
skynicko
Posté le 16-03-2005 à 12:01:17  profilanswer
 

dans le header("location" ) j'ai le droit de passer paiement_num dans l'url ?

n°1014375
skeye
Posté le 16-03-2005 à 12:02:45  profilanswer
 

skynicko a écrit :

dans le header("location" ) j'ai le droit de passer paiement_num dans l'url ?


 
:heink:
J'ai pas l'impression que ce soit très clair, tout ça...[:dawa]
Montre ton formulaire...


---------------
Can't buy what I want because it's free -
n°1014385
skynicko
Posté le 16-03-2005 à 12:07:34  profilanswer
 

Code :
  1. <form action="traitements/ajout_facture.php?action=ajout" method="post" class="form" name="form_paiement" onSubmit="verif_montant()">
  2. <label for="montant">Montant de la transaction :</label>
  3. <input type="text" name="montant" id="montant"  />&nbsp;&euro;       
  4.        
  5. <label for="bouton">&nbsp;</label>
  6. <input type="submit" name="bouton" id="bouton"   value="Envoyer" />
  7. </form>

n°1014386
skeye
Posté le 16-03-2005 à 12:08:58  profilanswer
 

et ton paiement_num_truc il est où là? [:wam]


---------------
Can't buy what I want because it's free -
n°1014389
skynicko
Posté le 16-03-2005 à 12:11:13  profilanswer
 

il n'est pas dans le formulaire puisque je l'insere dans la page traitement. IL faut que les numeros se suivent pour les factures. Donc je fais un select sur ma base je recupere la valeur de paiement_num_.. et je l'incremente de 1 puis je l'insere
 

Code :
  1. $query_factures="SELECT paiement_num_facture FROM tab_paiement ORDER BY paiement_num_facture DESC";
  2. ...
  3. $num_facture=$lignes_factures['paiement_num_facture']+1;
  4. $query_ins_paiement = "INSERT INTO tab_paiement(paiement_id, paiement_num_facture, paiement_montant) VALUES('','$num_facture','$montant')";


 
Il faut que je puisse le recupere depuis cette page donc. J'explique vraiment comme une chevre


Message édité par skynicko le 16-03-2005 à 12:14:01
n°1014393
skeye
Posté le 16-03-2005 à 12:14:45  profilanswer
 

[:ciler]
Je comprends rien à comment s'organisent tes pages, dans quelle page est chaque bout de code, et ce que tu cherches exactement à obtenir, là...[:joce]
Tu peux nous faire un récapitulatif exact de l'enchainement de tes pages et des variables que tu passes à chaque page, par quel moyen, et quelles variables tu veux dans chaque page? :whistle:


---------------
Can't buy what I want because it's free -
n°1014503
skynicko
Posté le 16-03-2005 à 14:15:41  profilanswer
 

j'ai une page avec mon formulaire que l'on appelera formulaire.php. Dans cette page l'utilisateur saisi uniquement  le montant de la commande en euros.
C'est dans cette page que je veux recupérer et afficher le numero de facture et le montant de la commande.
 

Code :
  1. Montant:<?echo  $_SESSION['montant'];?> // Le montant s'affiche c'est ok
  2. Numero de facture:<?echo  $_SESSION['num_facture'];?> // Le numero de facture s'affiche pas
  3. <form action="traitements/ajout_facture.php?action=ajout" method="post" class="form" name="form_paiement" onSubmit="verif_montant()">                                 
  4.            
  5. <label for="montant">Montant de la transaction :</label>
  6. <input type="text" name="montant" id="montant"  />&nbsp;&euro;
  7. </form>


 
Quand j'envoie le formulaire la page traitement_formulaire.php insere les données dans la base à savoir l'id, le numero de commande, le montant. Puis elle enregistre le montant de la commande dans une variable de session. Elle doit faire la même chose pour le numero de facture mais comme elle est pas transmise en post comme le montant mais inseré directement depuis cette page je voix pas comment je dois faire.
 

Code :
  1. session_start();
  2. if(isset($_POST['montant']))
  3. {
  4. $_SESSION['paiement_num_facture'] = $_GET['paiement_num_facture'];
  5. $_SESSION['montant'] = $_POST['montant'];
  6. }
  7. else
  8. {
  9. $_SESSION['montant'] = 0;
  10. }
  11. if(isset($_GET['action']) && $_GET['action'] == 'ajout')
  12.     {
  13. if(!empty($_POST['montant']))
  14. {
  15. $montant = trim($_POST['montant']);
  16. mysql_select_db($database_dbprotect, $dbprotect);
  17. $query_factures="SELECT paiement_num_facture FROM tab_paiement ORDER BY paiement_num_facture DESC"; // requête sur la table paiement
  18. $factures = mysql_query($query_factures, $dbprotect) or die(mysql_error());
  19. $lignes_factures = mysql_fetch_assoc($factures);
  20. $num_facture=$lignes_factures['paiement_num_facture']+1;
  21. $query_ins_paiement = "INSERT INTO tab_paiement(paiement_id, paiement_num_facture, paiement_montant) VALUES('','$num_facture','$montant')";
  22. ... 
  23. header("Location:../accueil.php?erreur=envoye&paiement_num_facture=$_GET['paiement_num_facture']" );
  24. // redirection vers la page formulaire


Message édité par skynicko le 16-03-2005 à 14:18:01
n°1014529
skeye
Posté le 16-03-2005 à 14:31:34  profilanswer
 

skynicko a écrit :

j'ai une page avec mon formulaire que l'on appelera formulaire.php. Dans cette page l'utilisateur saisi uniquement  le montant de la commande en euros.
C'est dans cette page que je veux recupérer et afficher le numero de facture et le montant de la commande.
 
Quand j'envoie le formulaire la page traitement_formulaire.php insere les données dans la base à savoir l'id, le numero de commande, le montant. Puis elle enregistre le montant de la commande dans une variable de session. Elle doit faire la même chose pour le numero de facture mais comme elle est pas transmise en post comme le montant mais inseré directement depuis cette page je voix pas comment je dois faire.


 
Bon, ok. Je commente un peu ton code :

Citation :

 

Code :
  1. session_start();
  2. if(isset($_POST['montant']))
  3. {
  4. $_SESSION['paiement_num_facture'] = $_GET['paiement_num_facture']; //cette ligne n'a pas de sens, tu n'as rien dans $_GET
  5. $_SESSION['montant'] = $_POST['montant'];
  6. }
  7. [...]
  8. $lignes_factures = mysql_fetch_assoc($factures);
  9. $num_facture=$lignes_factures['paiement_num_facture']+1;
  10. //ici tu connais num_facture, tu peux le mettre en session
  11. //$_SESSION['paiement_num_facture'] = $num_facture
  12. [...]
  13. //seconde solution, plutot que le mettre en session tu le mets dans GET...je corrige la ligne
  14. header("Location:../accueil.php?erreur=envoye&paiement_num_facture=$num_facture" );
  15. // redirection vers la page formulaire



 
Là tu devrais mieux voir...si je me suis pas planté en cours de route!;)
Mais tu as de fortes lacunes dans la compréhension du passage de paramètres, tu devrais lire de la doc et des tutos...


---------------
Can't buy what I want because it's free -
n°1014540
skynicko
Posté le 16-03-2005 à 14:35:48  profilanswer
 

Je vais suivre tes conseilles merci. Pourtant je lis pas mal de doc. J'essaye aussi de pratiquer à coté mais c'est pas encore ça. Enfin je m'y suis mis il y a 2 semaines. Donc j'avance lentement mais surement

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Session

 

Sujets relatifs
Session[PHP] Pb gestion de session couplée PHPBB
[SESSION] Probleme de log outUn pb de caddie avec session php: tableau dans un tableau
[ASP] Perte de variable de session en utilisant des cookiesSession liste de connecter
prog demarrage de sessionsession & cookie
Mes données de session s'effacent au retour d'une pagesession + controle de controle de champ
Plus de sujets relatifs à : Session


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR