[php] variables qui se perdent ?

variables qui se perdent ? [php] - Programmation

Marsh Posté le 22-06-2001 à 17:28:51    

salut les gens,
 
 
J'ai une fonction qui récupère les variables d'un formulaire.
 
Ensuite j'ai
 
<input type=button name="machin" value="garder ces valeurs ?">
 
<?
if ($machin)
{
  blabla();
}
?>
 
Le problème, c'est que j'ai l'impression que mes variables ont oublié combien elles valent une fois qu'on appuye sur le bouton, et donc j'arrive pas à les employer dans blabla()...
 
 
Comment faire ?


---------------
oui oui
Reply

Marsh Posté le 22-06-2001 à 17:28:51   

Reply

Marsh Posté le 22-06-2001 à 17:49:52    

euh...
 
là c'est pas des variables qui se perdent à mon avis, c'est des coups de pieds au c*l :D
 
nan j'déconne :D
 
me dit pas que tu fais tout ça dans la même page qd même?

Reply

Marsh Posté le 22-06-2001 à 18:35:16    

Ben c'est possible de tout mettre sur la même page, mais faut faire gaffe à l'odre des choses !
 
1-tester si les variables doivent être traiter
2-afficher le formulaire avec éventuellement les valeurs du "passage" précédent!
 
Enfin, c'que j'en dis...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 22-06-2001 à 18:48:37    

Maras's dad > je vois pas très bien ce que tu veux dire.
 
Je mets le truc en simplifié, parce que je crois que je m'explique mal.
 
 
 
<form method=post action"<? echo $PHP_SELF ?>">
<table>
<tr>
 <td>combien de champs</td><td>:</td><td><input type="Text" name="nombre" value=<? echo $nombre ?>></td>
</tr>
</table>
<input type="Submit" name="combieng" value="Nombre">
 
<?  
if ($combieng)  // normalement il affiche un formulaire avec $nombre champs, mais la je racourcis...
{
 echo
 ("
  <form method=\"post\" action=\"<? echo $PHP_SELF ?>\">
  <table>
  <tr>
   <td><input type=\"Text\" name=\"brol\" value=\"$brol\"></td>
  </tr>
  </table>
  <input type=\"Submit\" name=\"youpi\" value=\"Ajouter\">
 " );
}
 
if ($youpi)  
{
 echo ($brol);   // là il m'affiche bien BROL
 echo ("<br><input type=button name=\"solidifiage\" value=\"oui oui ?\">" );
}
 
if ($solidifiage)
{
 echo ($brol);  // là, il ne me l'affiche pas...
}
?>

 

[edit]--Message édité par art_dupond--[/edit]


---------------
oui oui
Reply

Marsh Posté le 22-06-2001 à 18:55:43    

ben c'est normal tu recharges la page... !?!
 
il faut rajouter ça ds le 2e formulaire :
<input type='hidden' name='brol' value='$brol'>

Reply

Marsh Posté le 22-06-2001 à 19:08:02    

Donc pour chaque variable que je dois garder, je dois mettre un
 
<input type='hidden' name='brol' value='$brol'>  ?
 
ou y a un moyen plus simple pour garder toutes les variables en une fois ?


---------------
oui oui
Reply

Marsh Posté le 22-06-2001 à 20:07:12    

Je croyais que tu voulais réafficher les valeur dans le formulaire !
 
Sinon, l'autre moyen c'est les sessions avec PHP4.
 
Voir la doc !
http://www.php.net/manual/fr/ref.session.php


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 22-06-2001 à 20:12:05    

non, ce n'est pas pour faire une session, je dois juste employer ces variables une fois.
 
En fait, le premier formulaire prend les valeurs.
 
Le deuxieme affiche une image en fonction de ces valeurs.
 
Si l'image me plait, ben j'appuye sur le bouton et il me stocke les valeurs dans un fichier ou une bd.


---------------
oui oui
Reply

Marsh Posté le 23-06-2001 à 11:51:51    

et ben les sessions c'est parfait !

Reply

Marsh Posté le 23-06-2001 à 15:58:03    

ben oki, si vous le dites tous, alors je m'incline, et je vais potasser ca.
 
Merci maitres


---------------
oui oui
Reply

Marsh Posté le 23-06-2001 à 15:58:03   

Reply

Marsh Posté le 25-06-2001 à 23:50:03    

au fait, est-ce que ca marcherait si je declarais les variables en STATIC ?
 
 
 
 
Je suis neuneu ! n 'est-ce pas ?


---------------
oui oui
Reply

Marsh Posté le 26-06-2001 à 00:30:58    

Non pour les STATIC !
 
Il faut bien comprendre qu'entre l'affichage du premier formulaire et du second, ton script a été éxécuté deux fois.
Le moteur php n'a pas moyen de lier ces 2 sessions. Pour lui, c'est 2 événements qui n'ont rien en commun.
Si tu veut que la deuxième session ait des infos de la première, il faut les lui donner. Soit par des variables cachées dans un formulaire, soit par des cookies.
 
Les variables de sessions utilisent cette technique.
 
Exemple à base de cookies.
Il faut comprendre comment les cookies fonctionnent:
Quand le navigateur envoie une requête à un serveur, il envoie aussi les cookies que se même serveur lui as envoyé lors d'une précédente visite, et rien sinon.
 
Donc en gros :
A la première visite d'un utilisateur, le serveur ne recoit pas de cookie, il en crée donc un et l'envoie au navigateur avec le premier formulaire.
 
L'utilisateur rempli le formulaire et renvoie le tout au serveur avec le cookie.
 
Le serveur qui reçoit le cookie se dit, tient, je le connais celui-là, et il sauve quelque-part les données du forulaire (ou tout ce que tu veut, c'est ton script php qui défini çà!) avec comme référence, la valeur du cookie. Ensuite, il evoie au client le 2eme formulaire.
 
L'utilisateur rempli le 2eme formulaire et l'envoie au serveur avec son cokkie.
 
Le serveur reçoit le cookie et le contenu du formulaire. Si ton script qui traite ce 2eme formulaire à besoin des valeurs sauvées  précédement, il peut y accéder grace au cookie qui y fait référence.
 
Cà a l'air lourd comme çà, mais çà évite de faire faire des aller retour à tes variables.
 
Bien sur, y'a un paramètre sur le serveur qui dit que les variables de session ont une certaine durée de vie. En effet, le serveur n'a aucun moyen de savoir quand l'utilisateur décide de naviguer ailleur ou d'éteindre son PC !
 
Donc entre deux formulaire, vaut mieux pas allez manger une pizza avec des pôtes !
 
Avant l'intégration de la notion de session dans PHP4, chaque webmaster devait inventer sa propre manière de gérer ce genre de chose, et pour les cas simples, les champs cachés sont une très très bonne solution.
 
Cela dit, je n'ai jamais pratiqué les sessions avec PHP4, seulement en ASP, donc pour savoir comment faire en pratique : RTFM ;)


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 26-06-2001 à 01:00:24    

oki oki,
 
je demandais ca parce que j 'avais lu que static permettait de garder les variables apres l 'excecution des fonctions, alors je me demandais si ca ne marcherait pas aussi pour une page, et apparemment c 'est non.
 
voili voili
 
 
je suis neuneu ! n 'est-ce pas ?


---------------
oui oui
Reply

Sujets relatifs:

Leave a Replay

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