Problème lors de l'actualisation page
Bonjour,
Petit problème avec mon blog : comment peux-je éviter que lorsqu'on fait une actualisation de la page(F5) le contenu s'ajoute une nouvelle dans la base de données ?
Mçi
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
Lu,
// POUR F5
Tu rediriges avec header() une fois validé.
// POUR LE CLICK
Mettre un timer en session pour comparer avant d'inserer le timer et le timer courant time().
zebdinou pour les intimes / Blog : http://www.zebden.fr
Heu !
J'ai pas tout compris.
F5 tu redirige avec header une fois validé... J'imagine que la fonction c'est header (quelque chose ?) mais je sais pas du tout comment faire ?
Click, mettre un timer en session... alors la je sais vraiment pas du tout comment faire ca, pourrais tu m'expliquer ca.
Merci
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
le 15/05/2006 à 23:24
Bzh
Pour le header:
<?php header("Location: ./index.php"); ?>
Cette fonction permet d'envoyer des entêtes HTTP au navigateur. Dans ton cas, on lui indique de rediriger vers la page index.php.
Pour le timer et la session, enregistre dans une variable de session time() et compare là. Je suppose que c'étais ça l'idée de Zebden mais je ne vois pas trop où il veut en venir...
C'est pour éviter se s'acharner sur le bouton valider... pour header() il y a une documentation !
zebdinou pour les intimes / Blog : http://www.zebden.fr
La redirection ne suffira pas, il faut donc mettre en place un système empêchant l'insertion multiple. Genre comparer le contenu du message envoyé au précédent du même utilisateur dans le même fil de discussion. Ça mange pas de pain.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Voila qui complique tout, que faire alors ? donc je recapitule, mon problème c'est certaines personnes pousent plusieurs fois sur le bouton envoyer/poster et le message s'affiche donc plusieurs fois. Quelle est la meilleure solution (simple) ?
1. La redirection vers une autre page n'est pas indiqué puisqu'il faut rester sur la même page.
2. La session, je vois pas comment faire .
3 le système empêchant l'insertion multiple ca me semlbe pas mal.. mais pourrait tu m'expliquer, Merci.
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
La redirection ne suffira pas, il faut donc mettre en place un système empêchant l'insertion multiple. Genre comparer le contenu du message envoyé au précédent du même utilisateur dans le même fil de discussion. Ça mange pas de pain.
C'était pas le but du timer ?
2. La session, je vois pas comment faire .
<?php
// A La validation
$_SESSION['timerFormulaire'] = time(); ?
// Interval pour revalider : 20s
$delaiValidation = 20; // 20s
// Test avec l'heure courante retourné par time
if(($_SESSION['timerFormulaire'] + $delaiValidation) < time()) // On valide
?>
Dur ?
zebdinou pour les intimes / Blog : http://www.zebden.fr
Avec des idiots comme moi, ça ne suffit pas le timer ;) Je navigue avec au minimum 50 onglets ouverts, et il m'arrive de double-poster parce que je reviens en arrière, ou ait oublié que j'ai déjà posté.
Donc je préfère contrôlé le contenu, c'est plus fiable que le temps.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Je suis pas forcement d'accord, une fois posté et si c'est redirigé ensuite avec header, tu n'as pu le problème de cache. Or si tu post et que tu navigues comme tu dis, ce qui la est possible, en revenant sur le site où poster, tu seras forcement obliger de rediger une seconde fois le post.
Or il y a aura forcement des différences dans le contenu donc presque impossible de revérifier. Surtout comme tu l'affirmes avec une mémoire de poisson rouge ^^
Le timer n'est la que pour eviter de s'exciter sur le bouton "poster".
Néanmoins, pour un formulaire d'inscription ou là il est plus probable que ca arrive, une verification des infos est de toute façon néccéssaire, donc voilà...
zebdinou pour les intimes / Blog : http://www.zebden.fr