Expiration d'une page

Résolu
belzebuth13 Messages postés 7 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 14 février 2005 - 11 févr. 2005 à 20:24
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 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.

merci de votre aide
Jonathan

3 réponses

cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
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 !
3
shaiulud Messages postés 404 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 juillet 2014 22
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>
0
belzebuth13 Messages postés 7 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 14 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.

Jonathan
0
Rejoignez-nous