Les variables des sessions en php [Résolu/Fermé]

Signaler
Messages postés
29
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
16 avril 2018
-
 abdeslam1999 -
Bonjours;

j'ai trois pages web crées:

page1:consultation_client

//.........................................
<?php
$connexion=mysql_connect('localhost','root',"") or die ("Connexion impossible.");
$db=mysql_select_db('AGCS',$connexion) or die ("Base de données non accessible.");
echo'<form name="add" method="post" action="article_consulte.php" onSubmit="return verif()">';
$resultat=mysql_query("select * from client ") or die ("Requête non executée.");
echo '<select name="v_client_id" style="width:200px">';
echo '<option value="" >-Sélectionner un client--</option>';
while ($ligne=mysql_fetch_array($resultat))
{
echo "<option value='".$ligne["client_id"]. "'.>".$ligne["nom_client"]."</option>\n";
}
echo '</select>';
?>
//LES CHAMPS
................
<input type="text" name="v_client_id" />
........................
<input type="text" name="date_consulte" />
........................
<input type="text" name="etat_consulte" />
........................
<input type="text" name="mode_consulte" />
........................
<input type="text" name="rep_consulte" />
........................
<input type="text" name="date_rep" />

?>

j'ai rempli ces champs puis je clique sur un bouton pour aller à la deuxième page:article_consulte.php

Page2:le premier problème: comment je peux tranmettre ces champs vers la page article_consulte (j'ai utilisé les sessions)


<?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
$connexion = @mysql_connect('localhost','root',"") or die ("Connexion impossible.");
$db = @mysql_select_db('AGCS',$connexion) or die ("Base de données non accessible.");
?>
<form name="add" action="Traitement/ajouter_consultation.php" method="POST" onSubmit="return verif()">
.................................................
.................................................

Page:3:le deuxime problème:je veux inserer ces champs dans la page d'insertion(ajouter_consultation)

<?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);
}
?>


Merci
abdeslam

3 réponses

Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
846
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.

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);
}
?>
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
846
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).

j'ai réglé le problème.
l'erreur est de ma part,juste j'ai oublié de faire les session au début avant l'écriture tout code

en tout cas merci de votre explications