Empêcher Refresh

g.lebourgeois

Membre actif
30 Décembre 2006
174
4
Villejuif
www.guillaume-lebourgeois.fr
Bonjour,
je voudrais savoir s'il est possible d'empêcher les rafraîchissements de page par l'utilisateur, ou au moins de pouvoir les détecter... je développe en effet un site sur lequel un rafraîchissement de page pourrait avoir un effet désastreux sur la base de données (doublons, mauvaises informations, etc...)

merci de votre aide !
 
Bonjour,
je voudrais savoir s'il est possible d'empêcher les rafraîchissements de page par l'utilisateur, ou au moins de pouvoir les détecter... je développe en effet un site sur lequel un rafraîchissement de page pourrait avoir un effet désastreux sur la base de données (doublons, mauvaises informations, etc...)

merci de votre aide !
En générale le problème se pose avec les formulaires, par exemple sur un blog, quelqu'un post un commentaire, recharge la page et les données POST sont ré-envoyées.


Il existe plusieurs solutions, voici les deux plus simple :
1. Soit ajoutez le commentaire (ou autre) via AJAX et donc sans rechargement de page (du coup même si on recharge la page après ça change rien).
2. Ou alors avoir une page de traitement qui redirige vers la page, c'ets pas clair alors j'explique :
--> le formulaire est rempli sur la page 1 et est envoyer à la page 2, la page deux s'occupe des ajouts à la base de données, puis, sans rien envoyer au navigateur, elle redirige vers la page 1.
Comme ça la page 1 peut être recharger sans problème.



Si cela ne t'aide pas (c'est à dire c'est tu est dans une autre situation) explique nous plus en détail pour qu'on puisse t'aider plus précisément :)
 
Le développement du site est déjà bien avancé. Il s'agit d'un site à usage interne dans une entreprise, avec plusieurs niveaux de droits différents. De nombreux formulaires, avec de nombreuses options, qui renvoient toujours vers la même page : tout est construit sur des include et/ou des conditions if (du genre : if(isset($_GET['confirmersuppression']) {suppression($_POST['IdTruc'])}
Il s'agit parfois de requêtes ajoutant des informations dans la Base, et des refresh pourraient faire très mauvais effet...
 
  • J’aime
Réactions: p4bl0
Le développement du site est déjà bien avancé. Il s'agit d'un site à usage interne dans une entreprise, avec plusieurs niveaux de droits différents. De nombreux formulaires, avec de nombreuses options, qui renvoient toujours vers la même page : tout est construit sur des include et/ou des conditions if (du genre : if(isset($_GET['confirmersuppression']) {suppression($_POST['IdTruc'])}
Il s'agit parfois de requêtes ajoutant des informations dans la Base, et des refresh pourraient faire très mauvais effet...
Ben il y a les deux solutions dont je t'ai parlé, mais si le site est déjà organisé et que c'est volumineux, c'est peut-être pas possible de tout changer maintenant.

(Au moins pour tes prochains site, tu sera "aware" of ce problème et tu les développera dès le départ en faisant attention à ce genre de truc).


Empêcher les reload c'est mission impossible.

Bon alors tu as les solutions un peu plus compliqué :
La plus évidente est de vérifié à chaque post que la personne ne vient pas de juste poster la même chose.

Donc il faut, avant chaque modifications sur la base de données faite par un utilisateur (par exemple une suppression ou un ajout), vérifié que l'opération ne viens pas d'être faite.

Exemple :
Monsieur Atchirioumfpmok (retient bien le nom c'est le plus important) rempli un formulaire et appui sur envoyer.
Le script qui gère le traitement du formulaire compare les dernières valeurs entrées et celles soumises par Monsieur Atchirioumfpmok. C'est pas les même, alors le script enregistre les valeurs entrées par Monsieur Atchirioumfpmok.
Ensuite Monsieur Atchirioumfpmok recharge la page, les données sont réenvoyé.
Le script qui gère le traitement du formulaire compare les dernières valeurs entrées et celles soumises par Monsieur Atchirioumfpmok. Ce sont les même valeurs, alors il ne les enregistre pas.

Évidemment si Madamme Atchirioumfpmok a entré des valeurs dans la base entre temps (Ah les femmes et l'informatique... :rateau: :D) ça ne va pas marcher, donc je te propose de vérifier les dernières valeurs entrées par Monsieur Atchirioumfpmok et pas les dernières valeurs tout court, par exemple en enregistrant son adresse IP (dans une nouvelle table au besoin, si tu ne te sens pas de modifier l'autre car cela implique certainement la modifictaions de plein de code).


Voilà.

(Je t'avais prévenu que les deux solutions les plus simple sont celles de mon premier post ;))


P.S. : je viens de voir sur ton site qu'à l'UTC l'opération Apple On Campus existe. :cool: :love: j'ai encore plus envie d'y aller l'an prochain. :p
 
A vrai dire... Apple on Campus existe, et j'en suis l'ambassadeur et représentant !!!
tu peux voir ça sur wwwetu.utc.fr/~glebourg

Par contre je rencontre un problème avec ma lecture de flux RSS, qui ne marche pas sur le serveur de l'UTC apparemment, je cherche une solution.

En ce qui concerne mon problème, les solutions envisageables sont trop "volumineuses" en temps de déploiement pour que je puisse les utiliser... tant pis, ça m'apprendra pour la prochaine fois !
 
A vrai dire... Apple on Campus existe, et j'en suis l'ambassadeur et représentant !!!
tu peux voir ça sur wwwetu.utc.fr/~glebourg

Par contre je rencontre un problème avec ma lecture de flux RSS, qui ne marche pas sur le serveur de l'UTC apparemment, je cherche une solution.

En ce qui concerne mon problème, les solutions envisageables sont trop "volumineuses" en temps de déploiement pour que je puisse les utiliser... tant pis, ça m'apprendra pour la prochaine fois !
On utilise cette discussion pour le RSS ? boah... soyons fou.

Quand tu dis la lecture pose problème tu veux dire quoi ?
Que tu n'arrive pas à lire un flux quand il provient du serveur de l'UTC ?

As-tu essayer avec différent lecteur ??

(je sais que cet abruti de Safari ne sais pas lire les flux RSS dont l'URL contient un port, donc par exemple http://localhost:80/feed.rss ne peut être lu avec Safari).
 
Nan, le flux, je ne le lis pas avec le navigateur mais avec des fonctions écrites en php, qui me permettent ensuite de l'afficher sur une page, et ainsi de l'intégrer comme je veux sur le site.
tu peux voir ça là : http://wwwetu.utc.fr/~glebourg/apple

Au lieu d'affichage, il y a une jolie erreur http...
copie nous le bloc de code (genre la fonction) qui contient la ligne 241 du fichier public_html/apple/magpierss/rss_fetch.inc

Comme ça on voit pourquoi il n'arrive pas à récupérer le contenu du flux.
 
Désolé, j'ai un peu décroché de cette histoire (toujours pas réglée), étant donné mes nombreux chevaux de bataille ainsi que ma rentrée.
J'utilise la biblio Magpierss, je crois que ça gère bof les proxys (qui semblent être mon problème)
tu veux pas copier-coller le bloc de code concerné (celui qui contient la ligne 241) pour qu'on voit ce que c'est ?

Parce que sinon faut téléchrager magpierss et tout... :rateau: