belzebuth13
Messages postés7Date d'inscriptionjeudi 7 octobre 2004StatutMembreDernière intervention14 février 2005
-
11 févr. 2005 à 20:24
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 2011
-
14 févr. 2005 à 21:14
Bonjour,
j'ai une page qui ne doit pas être mise en cache, j'écris donc dans ma page
Response.Expires = -1
Response.CacheControl = "No-Cache"
Si l'utilisateur utilise le bouton précédent, la page d'erreur lui apparaît lui disant que la page est expirée et qu'il lui faut reposter le forumlaire.
Mais je ne voudrais même pas que l'utilisateur puisse réactualiser sa page et reposter son formulaire, je veux qu'il suive toujours les boutons de navigation du site. Y a-t-il un moyen de détecter que la page est expirée côté serveur et pouvoir alors rediriger le client vers une page d'erreur ?
J'ai vérifié si ça pouvait se faire dans IIS avec les "Custom errors", pour avoir une page d'erreur personalisée, mais je n'ai pas vu d'élément pour l'erreur de page expirée.
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 14 févr. 2005 à 21:14
Salut
Une solution serait les variables de sessions : Dans la page à laquelle tu envoi le formulaire, tu crée une variable Session("envoye")="ok" ; et dans la page du formulaire, tu regardes si ta variable session est égal à ok, si elle l'est tu cache le formulaire et tu affiche à la place un message du genre : "vous avez déjà posté quelque chose..."
Ce qui donnerais :
if Session("envoye")="ok" then
' ici tu met le formulaire
else
Response.Write("Vous avez déjà posté quelque chose...")
end if
Comme ça même si l'utilisateur fait précédent, s'il actualise...dans tous les cas il ne pourra pas reposter le formulaire !!!
Nurgle C'est une grande folie que de vouloir être sage tout seul !
shaiulud
Messages postés404Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention15 juillet 201422 14 févr. 2005 à 16:46
pour inhiber l'action du bouton back en javascript:
history.forward();
dans tes formulaires :
supprimer tous les "submit" et mettre des "button" à la place avec un action en JS qui fait le submit. et placer une variable globale pour vérifier si c'est déjà posté
<script language="JavaScript">
history.forward();
var alreadySubmited=false;
function doSubmit() {
// vérification si nécessaire
// ...
if (!alreadySubmited) {
alreadySubmited=true;
document.forms(0).submit();
}
}
</script>
belzebuth13
Messages postés7Date d'inscriptionjeudi 7 octobre 2004StatutMembreDernière intervention14 février 2005 14 févr. 2005 à 18:16
C'est une solution côté client malheureusement... rien n'empêche l'usager d'actualiser sa page et de reposter le formulaire, je voudrais que tout retour arrière soit interdit, même en raffraichissant la page....
J'imagine qu'il n'y a pas d'événement javascript qui peut capter le click du bouton précédent ?de cette façon je pourrais annuler avec history.forward();
ou rediriger vers une page d'erreur.