Variable de session.... encore !!!

Variable de session.... encore !!! - PHP - Programmation

Marsh Posté le 17-11-2003 à 17:08:50    

Excusez moi encore... Mais j'ai toujours mon probleme avec les variables de session...
Je sais ça doit pas etre compliqué à faire... j'ai essayé plein de methodes... Mais là je suis pas convaincu que ça marche ! lol!
 
en fait ma session est crée (enfin apparement vu l'URL !)
Simplement quand je veux afficher une de mes variables... et bien ça ne s'affiche pas !
 
Si quelqu'un pouvait me dire quelle est l'erreur que je fais... ça m'aiderait enormement !!!
 
voici mon code :
 
index_etape1.php
 
<?
session_name ('DEVIS1');
session_start();
 
$_SESSION[$_POST['type_nb_pages']]=$nb_pages;
$_SESSION[$_POST['type_format_papier']]=$format_papier;
$_SESSION[$_POST['type_rv']]=$rv;
$_SESSION[$_POST['type_nb_pages_nb']]=$nb_pages_nb;
$_SESSION[$_POST['type_nb_pages_coul']]=$nb_pages_coul;
 
if ($submit){
header("Location: index_etape2.php?".session_name()."=".session_id());
}
 
?>
<form action="index_etape1.php" method="post">
[...]

 
 
index_etape2.php
 
<?
session_name ('DEVIS1');
session_start();
 
$_SESSION[$_POST['type_nb_ex']]=$nb_ex;
$_SESSION[$_POST['type_rv']]=$rv;
$_SESSION[$_POST['type_finitions']]=$finitions;
 
if ($submit2){
header("Location: index_etape3.php?".session_name()."=".session_id());
}
 
?>
 
 
<form action="<? $PHP_SELF; ?>" method="post">
[...]

 
Et pour l'affichage de mes variables dans index_etape2.php :
 
par exemple :
 
<? echo $_SESSION['type_nb_pages']; ?>
 
si vous voulez tester : http://www.clonecopy.net/php/devis/index_etape1.php
 
 
Merci d'avance ! :)
 
 
 


---------------
Freed102
Reply

Marsh Posté le 17-11-2003 à 17:08:50   

Reply

Marsh Posté le 17-11-2003 à 17:54:25    

a mon avis, ton session_name('DEVIS1'); ne sert aà rien ... [:meganne]
 
sinon .... [:mlc], essayes plutôt ce genre de syntaxe :

Code :
  1. [cpp]$nb_pages=$_POST['type_nb_pages'];
  2. $_SESSION['nb_pages']=$nb_pages;

[/cpp]
 
ou
 

Code :
  1. $_SESSION['nb_pages']=$_POST['type_nb_pages'];
  2. echo "<h1> NB pages : ".$_SESSION['nb_pages']." --> \o/ </h1>";


Message édité par simogeo le 17-11-2003 à 17:54:41

---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 17-11-2003 à 18:25:49    

simogeo a écrit :

a mon avis, ton session_name('DEVIS1'); ne sert aà rien ... [:meganne]
 
sinon .... [:mlc], essayes plutôt ce genre de syntaxe :

Code :
  1. [cpp]$nb_pages=$_POST['type_nb_pages'];
  2. $_SESSION['nb_pages']=$nb_pages;

[/cpp]
 
ou
 

Code :
  1. $_SESSION['nb_pages']=$_POST['type_nb_pages'];
  2. echo "<h1> NB pages : ".$_SESSION['nb_pages']." --> \o/ </h1>";




 
 
Merci beaucoup pour ta reponse...
J'ai essayé ta methode (la seconde surtout)... mais en vain !! :(
 
je te montre mon code de nouveau :
 
index_etape1.php
 
<?
session_name ('DEVIS1');
session_start();
 
$_SESSION['nb_pages']=$_POST['type_nb_pages'];
$_SESSION['format_papier']=$_POST['type_format_papier'];
$_SESSION['rv']=$_POST['type_rv'];
$_SESSION['nb_pages_nb']=$_POST['type_nb_pages_nb'];
$_SESSION['nb_pages_coul']=$_POST['type_nb_pages_coul'];
 
if ($submit){
header("Location: index_etape2.php?".session_name()."=".session_id());
}
 
?>

 
index_etape2.php
 
    <? echo "Nombre de pages total: ".$_SESSION['nb_pages'].""; ?><br>
                    <? echo "Format papier : ".$_SESSION['format_papier'].""; ?> <br>
                    <? echo "Nombre pages noir et blanc : ".$_SESSION['nb_pages_nb'].""; ?><br>
                    <? echo "Nombre pages couleur : ".$_SESSION['nb_pages_coul'].""; ?><br>

 
Donc toujours le même probleme... je sais pas si mes variables sont enregistrées... êt je peux rien afficher !
 
Est ce un probleme d'ordre dans mon script ? si on regarde bien l'ordre de mon script...
 
1°) Je POST mon premier formulaire vers la page elle même (PHP_SELF)
2°) J'enregistre les variables (enfin j'essaie avec $_SESSION)
3°) je dirige vers la page suivante (Header "Location..." )
 
Est ce que ça va dans le bon sens ? Est ce que c logique ???
Est ce qu'il faut faire un "rappel" sur la page suivante pour utiliser les variables ou c'est censé etre enregistré dans la session d'office afin de pouvoir utiliser les variables à tout moment (comme je le souhaiterai) ?
 
Merci d'avance !!


---------------
Freed102
Reply

Marsh Posté le 17-11-2003 à 20:24:42    

et ça ça marche ?
 
index_etape1.php
 
<?php
session_start();
 
$_SESSION['nb_pages']=$_POST['type_nb_pages'];
$_SESSION['format_papier']=$_POST['type_format_papier'];
$_SESSION['rv']=$_POST['type_rv'];
$_SESSION['nb_pages_nb']=$_POST['type_nb_pages_nb'];
$_SESSION['nb_pages_coul']=$_POST['type_nb_pages_coul'];
 
if ($submit){
header("Location: index_etape2.php" );
}
 
?>
 
index_etape2.php
 
<?php
 
session_start();
 
echo "Nombre de pages total: ".$_SESSION['nb_pages']."<br>";
echo "Format papier : ".$_SESSION['format_papier']."<br>";
echo "Nombre pages noir et blanc : ".$_SESSION['nb_pages_nb']."<br>";
echo "Nombre pages couleur : ".$_SESSION['nb_pages_coul']."<br>";
?>

Reply

Marsh Posté le 18-11-2003 à 11:56:41    

Et bien... je viens d'essayer... et ça marche pas mieux ! :( !!!
Pourtant ça a pas l'air compliqué ! mais cherchez l'erreur...
ça fait 3 semaines que je galère avec ça ! lol !!!


---------------
Freed102
Reply

Marsh Posté le 18-11-2003 à 12:06:03    

tu pourrais poster tout ton code initial ?

Reply

Marsh Posté le 18-11-2003 à 12:21:04    

> freed102  
 

Code :
  1. <?php
  2. session_start();
  3. $var_test="blablabbla";
  4. $_SESSION['session_test']=$var_test;
  5. echo "<h1> result => ".$_SESSION['session_test']."</h1>";
  6. ?>


 
fais un fichier test avec uniquement ca dedans ......


Message édité par simogeo le 18-11-2003 à 12:21:30

---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 18-11-2003 à 12:30:28    

je viens de le faire... ta technique fonctionne... donc c qu'il ya a bien un bug dans mon code !! mais ou ?? je passe par un formulaire.. alors c pas si simple ! et je dois interagir avec les fichiers suivants... c pas impossible ça ?
 
pour ton test : http://www.clonecopy.net/test.php


---------------
Freed102
Reply

Marsh Posté le 18-11-2003 à 12:31:39    

Ne faut t il pas que j'enregistre mes variables sur le fichier suivant plutot que sur le fichier lui même ? (PHP_SELF) ?


---------------
Freed102
Reply

Marsh Posté le 18-11-2003 à 12:46:05    

très bien
on va maintenant verifier la configuration de php et le comportement des sessions sur le serveur
 
tu peux nous mettre un lien vers un fichier qui contiendra uniquement ceci :
 
<?php
phpinfo();
?>


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 18-11-2003 à 12:46:05   

Reply

Marsh Posté le 18-11-2003 à 13:06:52    

voila c fait...
http://www.clonecopy.net/test.php


---------------
Freed102
Reply

Marsh Posté le 18-11-2003 à 13:15:33    

le phpinfo te fournit (entre autres) les infos concernant les sessions :

Session Support  enabled
Registered save handlers  files user
 
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off


 
 
voici ta config serveur, tu trouveras toutes les infos relatives a cela dans la doc php.
 
session.use_trans_sid off // signifie que tu dois transmettre manuellement ton identifiant de session.
 
il semble que tu perdes le lien au premier submit du formulaire ( tu le transmets bien après dans le header )
 
dans ton form ajoutes alors :

Code :
  1. <input type="hidden" name="<?php echo session_name(); ?>" value="<?php echo session_id(); ?>" />


 
afin de faire suivre ton identifiant de session lors de ton premier submit.
il sera impératif de le mettre dans chaque formulaire avec ta configuration actuelle!


Message édité par simogeo le 18-11-2003 à 13:16:58

---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 18-11-2003 à 17:52:04    

mais alors je mais quoi dans le <form action="????"...>


---------------
Freed102
Reply

Marsh Posté le 18-11-2003 à 18:03:57    

<form action="<? $_SERVER['PHP_SELF']; ?>" method="post">


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 20-11-2003 à 12:11:50    

vous savez quoi??? et bien j'ai reussi !! (enfin presque !!) mais c loin d'etre terminé !lol


---------------
Freed102
Reply

Marsh Posté le 20-11-2003 à 12:19:38    

freed102 a écrit :

vous savez quoi??? et bien j'ai reussi !! (enfin presque !!) mais c loin d'etre terminé !lol


 [:tomilou]  [:tomilou]  [:tomilou]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed