le 30/01/2008 à 10:55
formulaire $_POST et rechargement de page
Bonjour
je voudrais eviter que le visiteur de mon site renvoie les donnees du formulaire en rechargeant la page.
Pour l'instant quand le visiteur recharge la page il obtient le message suivant :
The page you are trying to view contains POSTDATA.If you resend the data, any action the form carried out (such as a search or online purchase) will be repeated. To resend the data, click OK. Otherwise, click Cancel.
Pour eviter cela j'ai pense effectuer une redirection vers la meme page. Mais j'ai quelques problemes avec les headers
Pour tester tout ca, j'ai ecris un petit bout de code que voici :
Si mon test marche, il doit en theorie ne plus afficher le message et ne pas afficher le contenu de la variable $_POST['text'] puisque celle-ci n'existe plus.
Au lieu de cela, je revoie le message quand je recharge la page et j'obtient le message suivant :
Warning: Cannot modify header information - headers already sent by (output started at /.../.../test_post.php:2)
in /.../.../test_post.php on line 16
La ligne 16 correspondant a l'instruction header.
Est-ce que quelqu'un a une idee de comment effectuer une redirection qui marche?
Merci de vos reponse.
je voudrais eviter que le visiteur de mon site renvoie les donnees du formulaire en rechargeant la page.
Pour l'instant quand le visiteur recharge la page il obtient le message suivant :
The page you are trying to view contains POSTDATA.If you resend the data, any action the form carried out (such as a search or online purchase) will be repeated. To resend the data, click OK. Otherwise, click Cancel.
Pour eviter cela j'ai pense effectuer une redirection vers la meme page. Mais j'ai quelques problemes avec les headers
Pour tester tout ca, j'ai ecris un petit bout de code que voici :
<?php
print 'test pour eviter de renvoyer les donnees passees en post quand on recharge la page';
print '<form method="post" action=test_post.php>';
print '<input type="text" name="text" />';
print '<input type="submit" value="Test it !" name="submit" />' ;
print '</form>';
if(isset($_POST['text']))
{
echo $_POST['text'];
header('Location:test_post.php');
}
?>
Si mon test marche, il doit en theorie ne plus afficher le message et ne pas afficher le contenu de la variable $_POST['text'] puisque celle-ci n'existe plus.
Au lieu de cela, je revoie le message quand je recharge la page et j'obtient le message suivant :
Warning: Cannot modify header information - headers already sent by (output started at /.../.../test_post.php:2)
in /.../.../test_post.php on line 16
La ligne 16 correspondant a l'instruction header.
Est-ce que quelqu'un a une idee de comment effectuer une redirection qui marche?
Merci de vos reponse.