durée d'une valeur ???

durée d'une valeur ??? - PHP - Programmation

Marsh Posté le 19-03-2009 à 18:53:18    

Je crée une page où je demande quelle est la page à modifier à l'aide de <form>...</form>.
Ce champ <form>...</form> me renvoie une valeur (appelons la $valeur)qui me permet de créer ma page suivante dans laquelle je demande des informations à partir d'un autre champ <form>...</form> qui me renvoit sur une troisième page pour effectuer les modifications... Sur cette troisième page la valeur $valeur ne me renvoit plus rien...
 
Comment faire pour récupérer cette valeur ?

Reply

Marsh Posté le 19-03-2009 à 18:53:18   

Reply

Marsh Posté le 19-03-2009 à 18:57:58    

Par exemple dans un input hidden dans le deuxième formulaire

Reply

Marsh Posté le 19-03-2009 à 19:54:52    

Je ne connait pas cette fonction...
J'ai essayé avec $valeur = $valeur sans succés
Avec une session PHP, également sans succés
 
Une autre solution ? ou une explication ?

Reply

Marsh Posté le 19-03-2009 à 20:03:53    

Par défaut les valeurs ne se gardent pas. HTTP est stateless, donc chaque requête est indépendante.
 
Une solution est de remettre toutes les données précédentes dans le formulaire pour les retrouver, genre formulaire 1 :

Code :
  1. <form action="form2.php" method="post">
  2.   <div>
  3.      <label for="f_valeur">Valeur</label><br />
  4.      <input type="text" name="valeur" id="f_valeur" />
  5.   </div>
  6.   <div>
  7.     <input type="submit" value="Envoyer" />
  8.   </div>
  9. </form>


 
Puis dans le deuxième formulaire on récupère la valeur, qu'on place dans un input hidden. Le formulaire 3 pourra alors y accéder :

Code :
  1. <form action="form3.php" method="post">
  2.   <div>
  3.      <label for="f_valeur2">Valeur 2</label><br />
  4.      <input type="text" name="valeur2" id="f_valeur2" />
  5.   </div>
  6.   <div>
  7.      <input type="hidden" name="valeur" value="<?php echo htmlspecialchars($_POST['valeur']); ?>" />
  8.      <input type="submit" value="Envoyer" />
  9.   </div>
  10. </form>


(prévoir un peu de validation pour être sûr qu'une valeur a été bien transmise)

Reply

Marsh Posté le 19-03-2009 à 21:40:55    

J'ai suis passé par la création d'un fichier .txt, l'inscription de la valeur, sa récupération et l'effacement du fichier (unlink).
Ce n'est pas habituel mais cela fonctionne.


Message édité par alx067 le 19-03-2009 à 21:41:04
Reply

Marsh Posté le 19-03-2009 à 21:42:17    

et si 2 utilisateurs font la meme chose en meme temps ?


---------------

Reply

Marsh Posté le 19-03-2009 à 21:56:24    

...quelle est la probabilité ???
il faudrait que le nom du fichier de sauvegarde change...

Reply

Marsh Posté le 19-03-2009 à 22:15:10    

si c'est pour un vrai site , ca va dependre du trafic
si c'ets pour un tp , tu vas juste te prendre une sale note


---------------

Reply

Marsh Posté le 20-03-2009 à 10:21:12    

utilise une $_SESSION...
ou, comme dis précededment, un input type="hidden"...
Et, un fichiere unique pour un tp tu vas te faire taper sur les doigts...

Reply

Marsh Posté le 20-03-2009 à 10:44:45    

+1 pour la session.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 20-03-2009 à 10:44:45   

Reply

Marsh Posté le 20-03-2009 à 11:15:49    

rufo a écrit :

+1 pour la session.


 
je ne suis pas fan de la gestion en session de données temporaire :  il suffit qu'il y ait deux onglets ouverts et ça pose problème
 
clairement la meilleur solution est le input hidden


---------------

Reply

Marsh Posté le 20-03-2009 à 11:19:06    

Et si on peut se passer de cookies pour un truc aussi trivial :jap:

Reply

Marsh Posté le 23-03-2009 à 17:28:20    

Pour les onglets, jamais eu de problèmes : sessions multiples en locales sur plusieurs onglet, et pour le néophyte, c'est simple, il suffit de session_start() au début pis $_SESSION['tavariable']...

Reply

Marsh Posté le 23-03-2009 à 18:07:14    

ça ne pose aucun problème d'utiliser des session si le site est bien conçu , c'est a dire si les données propre a l'utilisateur sont en session mais que les données propres a un formulaire sont rattachés au formulaire


---------------

Reply

Sujets relatifs:

Leave a Replay

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