La page... contient des données envoyées par POST

kir0
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 10
Inscription: 26 Juil 2006

La page... contient des données envoyées par POST

Message le Lun Sep 25, 2006 9:13

Bonjour,

j'aimerais savoir comment enlever le message "La page que vous tentez de voir contient des données envoyées par POST..." lorsque je rafraichis ma page PHP ?

J'ai pensé passer par une page intermédiaire qui ensuite par un header location me renvoi sur la bonne page mais ca ne fait pas trés propre dans le code...
sinon j'ai essayé aussi de faire un unset() de mes variables en fin de page mais apparement ca ne marche pas !

Si quelqu'un connais une solution je suis preneur :)


sureau
WRInaute discret
WRInaute discret
 
Messages: 195
Inscription: 7 Mar 2005

Message le Lun Sep 25, 2006 9:34

Ya la page transitoir, mais aussi passer les variables en get qui evite d'avoir ce message


e-kiwi
Modérateur
Modérateur
 
Messages: 15617
Inscription: 23 Déc 2003

Message le Lun Sep 25, 2006 9:39

>> Ya la page transitoir

ça marche ça ?


sureau
WRInaute discret
WRInaute discret
 
Messages: 195
Inscription: 7 Mar 2005

Message le Lun Sep 25, 2006 9:46

tu passes par une page où dedans tu retraite les données afin de ne plus avoir le post

exemple :
suite à la validation du formuaire post, tu envoie sur la page temp.php
Sur cette page, tu traites tes données, ou converti ton post en chaine et envoie vers tapage.php (via un header("Location:tapage.php?mesVar=$tachaine");
Sur tapage.php, tu récupère la chaine et la retranscrit pour réobtenir tes variables post. Sur la page temporaire, tu fais une conditions : si il n'y a pas de post (donc c est une page précédente) tu renvois vers ton formulaire


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Lun Sep 25, 2006 9:55

Et ça sert à quoi? o_O

if (isset($_POST)) ne suffit pas?


sureau
WRInaute discret
WRInaute discret
 
Messages: 195
Inscription: 7 Mar 2005

Message le Lun Sep 25, 2006 10:00

Non car quand tu fais un "précédent" dans ton navigateur, celui ci te propose de reposter les éléménet du formulaire de facon automatique avant d'interpréter la page, et c est ce message qu'il veut éviter


serval2a
WRInaute accro
WRInaute accro
 
Messages: 3457
Inscription: 21 Mar 2005

Message le Lun Sep 25, 2006 10:05

Bonjour,
Le plus simple à mon avis c'est de placer un lien qui renvoit à la page précédent le post, ainsi l'utilisateur n'est pas tenté de raffraichir la page ou d'aller sur la page précédente.
En outre, raffraichir un page passant les données par GET peut conduire également à envoyer plusieurs fois les données dans la base, donc pas trop d'utilité à mon humble avis.
La page transitoire avec header location n'a pas non plus trop d'utilité mieux vaux utiliser une redirection quasi instantanée par meta.

@+


nickargall
WRInaute accro
WRInaute accro
 
Messages: 6468
Inscription: 13 Juin 2005

Message le Lun Sep 25, 2006 10:06

pas possible à mon avis.


sureau
WRInaute discret
WRInaute discret
 
Messages: 195
Inscription: 7 Mar 2005

Message le Lun Sep 25, 2006 10:23

pas possible à mon avis.
... c est toujours possible :)

Si passer en get, ca résoud le problème.

tu peux faire passer sur une page transitoire
dedans tu mets quelque chose dans le genre

Code: Tout sélectionner
POUR TA PAGE TRANSITOIRE
$_SESSION['POST'] = array();
if(isset($_POST['tavar'])){
foreach($_POST as $key=>$val){
$_SESSION['POST'][$key] = $val;
}
// tu enregistre des données dans la base ici
}else{
header("Location:ta page avec le formulaire.php");
}

// POUR TA PAGE SI VALIDATION DU FORMULAIRE
soit tu remet les variables en post, soit tu traite directement les session
if(isset($_SESSION['POST'][$key])){ // alors on a eu une validation du formulaire
foreach($_SESSION['POST'] as $key=>$val){
$_POST[$key] = $val;
}

}

kir0
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 10
Inscription: 26 Juil 2006

Message le Lun Sep 25, 2006 10:27

Je vais tester en GET voir si j'ai toujours le meme probleme :) merci de vos réponses je vous tiens au courant

kir0
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 10
Inscription: 26 Juil 2006

Message le Lun Sep 25, 2006 10:32

Voila le GET a résolut mon probleme :)
malgres que les données restent dans l'url au moins quand on refresh la page il n'y a pas le message !

En faites je developpe une application pour un standart téléphonique en PHP (avec du VoiceXML) avec une liste d'appels en attente et donc j'ai un bouton rafraichir pour remettre la liste à jour :)


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19595
Inscription: 8 Aoû 2004

Message le Lun Sep 25, 2006 11:02

Pourquoi ne pas faire un appel en Ajax ?
Comme cela toute la page ne sera pas rafraichie, juste le strict minimum.

kir0
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 10
Inscription: 26 Juil 2006

Message le Lun Sep 25, 2006 11:13

La page est assez simple , il y'a juste une liste d'appels avec des boutons d'actions (traiter l'appel, envoyer sms etc...), mais ca pourait être une bonne occaz de se mettre a l'AJAX, si tu as des sites assez simple pour commencer car je n'y ai jamais touché :)


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Lun Sep 25, 2006 12:26

sureau a écrit:Non car quand tu fais un "précédent" dans ton navigateur, celui ci te propose de reposter les éléménet du formulaire de facon automatique avant d'interpréter la page, et c est ce message qu'il veut éviter


Ok, j'avais pas capté le problème.
Pour un moteur de recherche j'avais fais un traitement du post qui renvoyé sur la page en mettant les variables en session. Bête mais ça marche.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité