Page 1 sur 1

Vider une variable

Posté : 10 avr. 2007, 21:40
par Invité
Bonjour à tous

Comment puis je vider une variable s'il vous plait.

Posté : 10 avr. 2007, 21:59
par MainMa
Vous pouvez utiliser pour cela la fonction unset($nom_variable).

Posté : 10 avr. 2007, 22:00
par Invité
Rooooo

Merci c'est tout a fait cela que je ne trouvais pas :)

Posté : 10 avr. 2007, 22:02
par Invité
Ps si un modo pouvait mettre résolut car je ne trouve pas ou c'est :'( pas encore gagné mon histoire moi ^^
Encore merci

Posté : 10 avr. 2007, 22:07
par iclo
Tu ne peux pas passer un sujet à résolu, si tu n'as pas posté le premier message en tant que membre inscrit. (Une excellement raison de t'inscrire :D)

Posté : 10 avr. 2007, 23:25
par tartpion
mais pourquoi si je vide une variable $_POST['toto'] avec la fonction unset et que apres je recharge la page ca ne marche pas il me redemende si il doit encore un fois traiter le donnees ou non...

merci d'avance..

Posté : 10 avr. 2007, 23:29
par Ryle
Résolu ajouté (ceci dit, tu peux suivre les conseils d'iclo et t'inscrire pour pouvoir faire le prochain toi même ;))

Et une petite précision quand à la fontion unset(), celle-ci ne se contente pas de "vider" une variable, elle la détruit. Le comportement du code peut être différent :
$var = "abc";
isSet($var); // renvoi vrai : la variable est définie
empty($var); // renvoi faux : la chaine n'est pas vide
strlen($var); // renvoi la taille de la chaine : 3

$var = ""; // si on vide la variable en l'écrasant avec une chaine vide
isSet($var); // renvoi vrai : la variable est toujours définie
empty($var); // renvoi vrai : la chaine est vide
strlen($var); // renvoi la taille de la chaine : 0

unset($var); // si on détruit la variable
isSet($var); // renvoi faux : la variable n'est plus définie
empty($var); // renvoi vrai : la variable est null, donc considéré comme chaine vide (ne génère pas d'erreur)
strlen($var); // génère une alerte : undefined variable

Posté : 10 avr. 2007, 23:35
par Ryle
mais pourquoi si je vide une variable $_POST['toto'] avec la fonction unset et que apres je recharge la page ca ne marche pas il me redemende si il doit encore un fois traiter le donnees ou non...

merci d'avance..
Quand tu recharges une page à laquelle des données ont été passées en post, ton navigateur te demandera toujours si tu veux soumettre à nouveau les données. Si tu cliques sur ok, alors elles sont renvoyées et le traitement à nouveau exécuté (les précédentes valeurs de $_POST sont remplacées par les nouvelles, même si en l'occurence il s'agit des mêmes). Si tu annules, tu as droit à une page blanche "la page ne peut être affichée sans le renvoi des données, etc." ce qui incite en général les gens à accépter et ce qui t'oblige à gérer ce cas :)

Pour éviter cela, il ne faut pas vider les variables, mais rediriger l'utilisateur après le traitement vers une nouvelle page à l'aide de la fonction header(). En effet, si l'utilisateur actualise, c'est cette nouvelle page qui est rechargé, sans reposte des données, sans re-éxécution du traitement, et sans doublon.. comme pour ce forum :)

Posté : 10 avr. 2007, 23:38
par MainMa
mais pourquoi si je vide une variable $_POST['toto'] avec la fonction unset et que apres je recharge la page ca ne marche pas il me redemende si il doit encore un fois traiter le donnees ou non...
Histoire de navigateur. Les variables $_POST sont ceux dont les valeurs parviennent du client (via la soumission d'une <form> par exemple), donc lorsque vous réactualisez la page, votre navigateur veut renvoyer l'information qu'il a envoyé auparavant, sans savoir si de votre coté vous l'avez supprimé ou modifié.

Regardez la documentation PHP - "Predefined Variables" pour plus d'informations.

Posté : 10 avr. 2007, 23:38
par tartpion
merci a toi ryle et un header qui renverrait sur la page courante marcherais ou je suis toujurs oblige de le faire en deux pages
en d'autres mots je suis oblige de creer une nouvelle page ou bien je peux mettre un header sur la meme page sauf que au passage le variable en POST elles sautent ???

Re: [RESOLU] Vider une variable

Posté : 28 août 2019, 11:19
par whislow
Pour effacer le contenu d'une variable, la solution la plus simple reste celle-ci:

Code : Tout sélectionner

$var = 'Contenu de ma variable'; $var = ''; // On obtiendra
Pour vider plusieurs variables on peut utiliser cette méthode:

Code : Tout sélectionner

$varA = 'contenu A'; $varB = 'contenu B'; $varC = 'contenu C'; $varA = $varB = $varC = ''; // <<< Ceci permet de vider à la chaîne plusieurs variables en une seule ligne. // On peut mettre à la suite autant de variables que nécessaire.
Enjoy ! :wink:

Re: [RESOLU] Vider une variable

Posté : 28 août 2019, 11:48
par Ryle
J'espère que la solution apportée il y a 12 ans aura résolu son problème sans qu'il ait eu besoin d'attendre autant ;)