Mougeole

  • Site web
  • Nombre de sujets
    1
  • Nombre de messages
    2
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

forum
Mougeole
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 :

<?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.

Ses derniers messages sur les forums

forum
Mougeole
Salut

Merci pour ton aide c'etait effectivement un probleme avec le header. Je precise que meme un commentaire avant le header provoque une erreur. Il ne doit vraiment rien y avoir avant.

Voici le code final :

<?php
if(isset($_POST['text']))
{
header('Location:test_post.php');

$file = fopen("/.../.../test.txt",w);

fwrite($file,$_POST['text']);

fclose($file);
}



print 'test pour eviter de renvoyer les donnee passee en post quand on reload 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>';

?>


On inscrit la variable envoye par formulaire dansle fichier test.txt.

Au rechargement de la page le fichier n'est pas modifie, le message d'avertissement n'apparait pas, les donnees ne sont pas renvoyees. Ca marche!
Mougeole
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 :

<?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.

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours