Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2157 connectés 

 


Dernière réponse
Sujet : [php] variables qui se perdent ?
art_dupond 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 ?

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
art_dupond 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 ?
Mara's dad 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 ;)
art_dupond au fait, est-ce que ca marcherait si je declarais les variables en STATIC ?
 
 
 
 
Je suis neuneu ! n 'est-ce pas ?
art_dupond ben oki, si vous le dites tous, alors je m'incline, et je vais potasser ca.
 
Merci maitres
M@nu et ben les sessions c'est parfait !
art_dupond 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.
Mara's dad 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
art_dupond 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 ?
M@nu ben c'est normal tu recharges la page... !?!
 
il faut rajouter ça ds le 2e formulaire :
<input type='hidden' name='brol' value='$brol'>
art_dupond 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]

Mara's dad 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...
duch 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?
art_dupond 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 ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)