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
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
A voir également:

3 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
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.
0
abdeslam1999
10 août 2009 à 13:48
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);
}
?>
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
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).
0
abdeslam1999
10 août 2009 à 17:19
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
0