Les variables des sessions en php
Résolu/Fermé
abdeslam1999
Messages postés
29
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
16 avril 2018
-
10 août 2009 à 13:12
abdeslam1999 - 10 août 2009 à 17:19
abdeslam1999 - 10 août 2009 à 17:19
A voir également:
- Les variables des sessions en php
- Easy php - Télécharger - Divers Web & Internet
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- Free nombre de sessions maximum atteint ✓ - Forum Réseaux sociaux
- Bouton php - Forum PHP
3 réponses
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 août 2009 à 13:28
10 août 2009 à 13:28
Bonjour,
Lorsque tu utilises les sessions en PHP, il faut ajouter 'session_start()' au début de chaque page où tu souhaites utiliser les sessions.
Donc, si dans ta page 2, tu as bien mis session_start au début, puis mis en mémoire dans la session des valeurs récupérées via $_POST de ton formulaire, alors dans la page 3, il te suffit d'ajouter 'session_start()' en début de page et utiliser les variables de session comme tu l'as déjà fait.
Normalement ça devrait fonctionner.
Par contre attention, dans ta première page je vois deux types de champs différent avec le même nom :
Ta select box : 'echo '<select name="v_client_id" style="width:200px">'; '
et ton champ de type text plus bas : <input type="text" name="v_client_id" />
Il ne faut jamais avoir deux champs du même nom, au risque de voir certaines valeurs écrasées par celle de l'autre champ nommé de la même manière, et cela peut par la suite donner des erreurs de comportement de ton script.
Lorsque tu utilises les sessions en PHP, il faut ajouter 'session_start()' au début de chaque page où tu souhaites utiliser les sessions.
Donc, si dans ta page 2, tu as bien mis session_start au début, puis mis en mémoire dans la session des valeurs récupérées via $_POST de ton formulaire, alors dans la page 3, il te suffit d'ajouter 'session_start()' en début de page et utiliser les variables de session comme tu l'as déjà fait.
Normalement ça devrait fonctionner.
Par contre attention, dans ta première page je vois deux types de champs différent avec le même nom :
Ta select box : 'echo '<select name="v_client_id" style="width:200px">'; '
et ton champ de type text plus bas : <input type="text" name="v_client_id" />
Il ne faut jamais avoir deux champs du même nom, au risque de voir certaines valeurs écrasées par celle de l'autre champ nommé de la même manière, et cela peut par la suite donner des erreurs de comportement de ton script.
D'abord merci de votre réponse:
c'est comme ce que vous voulez dire dans la troisième page(page d'insertion)
si oui: la ligne dans la table est ajoutée mais les champs ne sont pas
<?php
session_start();
$_SESSION["v_client_id"]=$_POST["v_client_id"];
$_SESSION["date_consulte"]=$_POST["date_consulte"];
$_SESSION["etat_consulte"]=$_POST["etat_consulte"];
$_SESSION["mode_consulte"]=$_POST["mode_consulte"];
$_SESSION["rep_consulte"]=$_POST["rep_consulte"];
$_SESSION["date_rep"]=$_POST["date_rep"];
?>
<?php
echo'<form name="add" method="post" action="Traitement/ajouter_consultation.php"">';
mysql_connect("localhost","root","");
mysql_select_db("AGCS");
if (isset($_POST['valider'])) {
//Rêquete d'ajout les consultation dans la table consultation_clt
$query="insert into consultation_clt(consult_clt_id,client_id,ref_consult,date_consult,etat_consult,mode_consult,reponse_clt,date_reponse) values ('','".$_SESSION['v_client_id']."','".$_SESSION['v_ref_clt']."','".$_SESSION['date_consulte']."','".$_SESSION['etat_consulte']."','".$_SESSION['mode_consulte']."','".$_SESSION['rep_consulte']."','".$_SESSION['date_rep']."')";
$result=mysql_query($query);
}
?>
c'est comme ce que vous voulez dire dans la troisième page(page d'insertion)
si oui: la ligne dans la table est ajoutée mais les champs ne sont pas
<?php
session_start();
$_SESSION["v_client_id"]=$_POST["v_client_id"];
$_SESSION["date_consulte"]=$_POST["date_consulte"];
$_SESSION["etat_consulte"]=$_POST["etat_consulte"];
$_SESSION["mode_consulte"]=$_POST["mode_consulte"];
$_SESSION["rep_consulte"]=$_POST["rep_consulte"];
$_SESSION["date_rep"]=$_POST["date_rep"];
?>
<?php
echo'<form name="add" method="post" action="Traitement/ajouter_consultation.php"">';
mysql_connect("localhost","root","");
mysql_select_db("AGCS");
if (isset($_POST['valider'])) {
//Rêquete d'ajout les consultation dans la table consultation_clt
$query="insert into consultation_clt(consult_clt_id,client_id,ref_consult,date_consult,etat_consult,mode_consult,reponse_clt,date_reponse) values ('','".$_SESSION['v_client_id']."','".$_SESSION['v_ref_clt']."','".$_SESSION['date_consulte']."','".$_SESSION['etat_consulte']."','".$_SESSION['mode_consulte']."','".$_SESSION['rep_consulte']."','".$_SESSION['date_rep']."')";
$result=mysql_query($query);
}
?>
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 août 2009 à 15:11
10 août 2009 à 15:11
Oui, la base de données est donc bien mise à jour dans le script 3, mais aucun champ n'apparait c'est ca ?
Je dirai que c'est normal puisque le code du script 3 ne fait apparaitre aucun champ, seulement une mise à jour de la base de données.
Que souhaites-tu faire exactement une fois que la base est mise à jour ? Revenir sur la toute première page ?
Si c'est le cas, il faut juste que tu fasses une redirection après avoir mis à jour ta base de données (donc après avoir fermée la connexion sur ta base après avoir fait la requête de mise à jour).
Je dirai que c'est normal puisque le code du script 3 ne fait apparaitre aucun champ, seulement une mise à jour de la base de données.
Que souhaites-tu faire exactement une fois que la base est mise à jour ? Revenir sur la toute première page ?
Si c'est le cas, il faut juste que tu fasses une redirection après avoir mis à jour ta base de données (donc après avoir fermée la connexion sur ta base après avoir fait la requête de mise à jour).