Pb actualisation dans mini chat

lloyd -  
 lloyd -
Bonjour,

je suis en train d'apprendre le langage php/mysql (sur le site du zéro) afin de créer mon site.

j'ai crée un "mini chat", qui fonctionne bien mis à part un petit soucis :

lorsqu'un message a été saisi et que je fais actualisé la page, ce message est récrit come s'il avait été posté une seconde fois, idem si j'actualise un autre fois, il estt recopié une troisieme fois, etc....

je ne vois pas ce qu'il faut ajouter au code pour empecher ceci

j'espere que vous pourrez m'aider, merci d'avance
A voir également:

13 réponses

bhruin Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   448
 
Bonjour,

Dans le tp que réalise M@teo21, il te donne la solution lui même a la fin dans: Étape 5 : améliorez ce script !.

En gros il dit qu'avant d'enregistrer le nouveau message, tu dois vérifier qu'il n' est pas identique au dernier message enregistré.

Je ne te cache pas que si tu reload la page et que si quelqu'un à envoyer un nouveau message entre temps le message sera a nouveau enregistré

A toi de trouver une solution à ce petit problème :)

Bonne journée.
0
lloyd
 
oui je sais mais ca fait plusieurs jours que je me casse la tete la dessus...

merci qd mm =p
0
lloyd
 
je ne parviens pas a trouver le bon code en fait ... =(
0
bhruin Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   448
 
Salut,

Est-ce que tu a réussis à savoir si le dernier message est déjà dans la basse de données ou tu bloque déjà a cette étape?

Bonne journée !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lloyd
 
euh je ne suis pas certain de bien comprendre,

mais une fois le message posté, il va dans la base de donnée, puis j'affiche les derniers messages
ensuite si j'actualise, le dernier message est a nouveau rentré dans la base de données (donc en double)

le pb est donc la :

je pense qu'il doit y avoir plusieurs facons de proceder. Est-il plus rapide :

-de faire un test pour savoir si le dernier message est deja ds la base de données ?
-ou bien est-il possible de faire un truc du genre $_POST['pseudo'] = null; $_POST['message'] = null; ??

a+
0
lloyd
 
j'ai partiellement résolu le pb :

j'ai choisi la 1ere solution evoqué dans le post ci dessus, cependant, qd je fais reactualiser la page, il y a qd mm une boite de dialogue qui s'affiche, me disant : "la page que vous tentez de voir contient des donnees envoyees par post...."

cmt faire pour que ce message ne s'affiche plus, cad en qques sortes "vider le _POST" ??
0
bhruin Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   448
 
Coucou,

Moi je regarderais dans la base de données si ton message est déjà dedans, âpres ce n'est que mon avis personnel.

En gros tu aurais une requête qui prendrais le dernier message enregistré, tu vérifie si il correspond au message qui va être enregistré. En dépendant de la vérification sois tu l'enregistre soit tu affiche a nouveau la page sans rien modifier.

Bonne journée.
0
lloyd
 
ok merci c ce que j'ai fait (cf mon dernier message ;)

mais j'ai tjs le pb de la fenetre qui s'affiche a la reacualisation et qui me dit : "la page que vous tentez de voir contient des donnees envoyees par post...."

cmt faire donc pour qu'il n'y ait plus rien ds le _POST['pseudo'] et le _POST['message'] ?? pour les ecraser et supprimer en fait ?

bonne journée aussi =)
0
bhruin Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   448
 
Je te conseille de tester plusieurs choses:

-la fonction unset($_POST['pseudo']);

-de définir la variable $_POST['pseudo'] = '';

Je ne sais pas trop si les solutions que je vient de te donner sont correcte.

Voila, a toute :)
0
lloyd
 
merci,

j'ai essayé $_POST['pseudo'] = ''; ...et il me semble que cela ne marche pas

a+
0
lloyd
 
je crois que unset non plus ne marche pas
=s
0
bhruin Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   448
 
Salut,

Je crois que tu va devoir utiliser un header ex: header('Location: fichier_apres_$_post.php').

Et tout tes problèmes seront résolus.

@+
0
lloyd
 
salut,
ma question va paraitre un peu bete mais je ne vois pas ce qu'est un header ? quel est son role et quels est la nature de l'argument "location" ?
0