variables qui se perdent ? [php] - Programmation
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
nan j'déconne
me dit pas que tu fais tout ça dans la même page qd même?
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...
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]
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'>
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
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.
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
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 ?
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