par
Ryle » 10 avr. 2007, 23:35
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

[quote="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..[/quote]
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 :)