La question classique: Comment bloquer le retour arrière

La question classique: Comment bloquer le retour arrière - HTML/CSS - Programmation

Marsh Posté le 17-08-2006 à 17:12:48    

Bonjour,
 
Je suis en train de faire un logiciel qui a une interface web et je dois absolument bloquer le bouton précédent sous IE et Firefox et la touche backspace. J'ai déjà vu des sites web qui envoient un message quand on veut faire un retour, mais je trouve rien de précis sur le web.
 
Quelqu'un aurait un bon tuto à me recommander ou pourrait m'expliquer directement.
 
Je sais très bien qu'en désactivant le js on vire l'effet du js. Mais dans un deuxième temps, j'empêcherai les utilisateurs de se connecter s'ils ont pas activé js.
 
Merci de votre aide.

Reply

Marsh Posté le 17-08-2006 à 17:12:48   

Reply

Marsh Posté le 17-08-2006 à 17:17:18    

écrit un navigateur


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 17-08-2006 à 17:19:07    

Ok, j'y penserai...quelqu'un a mieux à proposer?

Reply

Marsh Posté le 17-08-2006 à 17:19:20    

tu dois aussi bloquer le clic droit -> page precedente, ainsi que le retour en arriere de plusierus pages , ...
 
c'est impossible, ( et encore heureu ) , tant pis pour toi

Reply

Marsh Posté le 17-08-2006 à 17:23:51    

Citation :

j'empêcherai les utilisateurs de se connecter s'ils ont pas activé js.


 
maiçaisupaire  [:freekill]

Reply

Marsh Posté le 17-08-2006 à 17:26:48    

flo850 a écrit :

tu dois aussi bloquer le clic droit -> page precedente, ainsi que le retour en arriere de plusierus pages , ...
 
c'est impossible, ( et encore heureu ) , tant pis pour toi


 
Le clic droit c'est fait.
 
Il reste plus que le bouton précédent.
 
C'est pas impossible vu que sur certains sites, si on clique sur précédent, on a un alert qui s'affiche pour dire que précédent est désactivé.

Reply

Marsh Posté le 17-08-2006 à 17:28:04    

mIRROR a écrit :

Citation :

j'empêcherai les utilisateurs de se connecter s'ils ont pas activé js.


 
maiçaisupaire  [:freekill]


 
Je suis obligé, c'est pas un site web que je fais, c'est un prog pour une entreprise, j'ai fait des boutons équivalents, maintenant y a plus qu'à virer ceux en trop

Reply

Marsh Posté le 17-08-2006 à 17:36:36    

donc en meme temps tu vas etre obligé de supprimer l historique  
tu vas faire des heureux

Reply

Marsh Posté le 17-08-2006 à 17:41:07    

c'nawak [:spamafote]
tu as pensé à la touche backspace si ton focus est sur le document aussi?

Reply

Marsh Posté le 17-08-2006 à 17:45:49    

anapajari a écrit :

c'nawak [:spamafote]
tu as pensé à la touche backspace si ton focus est sur le document aussi?


 
Oui, j'y ai pensé. Le seul truc dont j'ai besoin est de pouvoir bloquer le bouton précédent du navigateur.

Reply

Marsh Posté le 17-08-2006 à 17:45:49   

Reply

Marsh Posté le 17-08-2006 à 18:00:53    

bon la seule façon de faire ça a peu près proprement c'est utiliser la propriété onBeforeUnload de window ( elle marche sur IE & gecko, les autres navs je sais jamais).
Un truc dans le genre:

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
  4. <head>
  5.   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  6.   <title>Exemple</title>
  7.   <script type="text/javascript">
  8.   var pouet = false;
  9.   window.onbeforeunload = function (){
  10.     if ( pouet == false){
  11.       return false;
  12.     }
  13.   }
  14.   function goToUrl(url){
  15.     pouet = true;
  16.     document.location.href = url;
  17.     return false;
  18.   }
  19.   </script>
  20. </head>
  21. <body>
  22.   <a href="http://www.google.com">lien normal</a><br/>
  23.   <a href="" onclick="return goToUrl('http://www.google.com')">lien perso</a>
  24. </body>
  25. </html>


Cela couvre tous les cas imaginables ( c'est par exemple comme ça que fonctionne gmail).
Néanmois cela affiche une fenêtre de confirmation, contre laquelle tu ne peux absolument rien.

Reply

Marsh Posté le 17-08-2006 à 18:56:56    

Merci! Je teste ça demain!

Reply

Marsh Posté le 18-08-2006 à 09:10:49    

Ca marche bien, mais je n'utilise que event.returnvalue pour afficher un message en partie personnalisable.
 
Est-ce que l'on peut utiliser d'autres méthodes que event.returnvalue?  
J'imagine que c'est pas possible, mais je cherche à pouvoir n'afficher qu'un message unique de confirmation...et idéalement enlever le bouton annuler!

Reply

Marsh Posté le 18-08-2006 à 09:16:53    

Et aussi que la fenêtre de confirmation ne s'affiche que dans certains cas, pas dès que je clique sur un lien ou n'importe quoi d'autre (pour l'instant, j'ai mis onbeforeunload dans la balise body)

Reply

Marsh Posté le 18-08-2006 à 09:23:06    

anapajari a écrit :

Néanmois cela affiche une fenêtre de confirmation, contre laquelle tu ne peux absolument rien.


Reply

Marsh Posté le 18-08-2006 à 09:38:33    

Ok, ben je te remercie quand même.
 
Et y a pas moyen de juste afficher une petite fenêtre de confirmation juste quand on clique sur précédent?

Reply

Marsh Posté le 26-08-2006 à 14:22:42    

Salut,
 
Avez-vous enfin trouvé une solution fiable pour résoudre les problèmes liés au bouton retour page précédente? Moi aussi je voudrais développer un logiciel avec Internet Explorer essencielement en PHP et MySQL.
 
Pedro BD, qu'a-tu finalement trouvé comme solution pour développer seinement ton logiciel?
 
Merci infiniment

Reply

Marsh Posté le 26-08-2006 à 14:26:06    

Ca dépend comment votre logiciel est goupillé... Pourquoi interdire le bouton précédent ? Quel problème y'a-t-il avec ?

Reply

Marsh Posté le 26-08-2006 à 14:35:34    

Salut,
 
Mon logiciel stock des valeurs dans une base de données et de manière organisé. Quand l'utilisateur utilisera le bouton retour arrière, il retrouvera les enciennes pages déjà validées; ce qui peut induire des erreurs lors de la réactualisation des pages précédente. Or un logiciel et développé pour être exécuté dans un sens logique et chronologiques pour ne pas qu'il s'embrouille les pinceaux. D'ailleurs, pour m'entrainer, j'ai fait une minie application ou l'utilisateur enregistre basiquement des valeurs dans une table. Ce programme marche très bien, mais si l'utilisateur fait l'erreur d'utiliser le bouton retour page précédente, parfois une page avec plein de merde apparait.
 
Merci de votre aide

Reply

Marsh Posté le 26-08-2006 à 14:37:25    

Abiss a écrit :

Salut,
 
Mon logiciel stock des valeurs dans une base de données et de manière organisé. Quand l'utilisateur utilisera le bouton retour arrière, il retrouvera les enciennes pages déjà validées;


Bah suffit d'interdire la mise en cache de la page...
 

Abiss a écrit :

Or un logiciel et développé pour être exécuté dans un sens logique et chronologiques pour ne pas qu'il s'embrouille les pinceaux.


Un logiciel n'est pas développé sous forme de pages webs :D. Dès que tu fais tout ça en Html, faut prendre en compte les contraintes : extrêmement difficile, voire impossible de supprimer le bouton précédent, vu que c'est la base de la navigation.

Reply

Marsh Posté le 26-08-2006 à 14:41:48    

Si sa existe, on apelle cela un site web dynamique. En fait c'est un site qui comporte des fonctions complexe pour traiter de l'information. Mais bon tu n'été peut-être pas au courant!
 
Bref je vais réfléchir sur cette mise en cache. Merci pour ton aide

Reply

Marsh Posté le 26-08-2006 à 14:44:51    

Abiss a écrit :

Si sa existe, on apelle cela un site web dynamique. En fait c'est un site qui comporte des fonctions complexe pour traiter de l'information. Mais bon tu n'été peut-être pas au courant!
 
Bref je vais réfléchir sur cette mise en cache. Merci pour ton aide


[:rofl]


Message édité par gatsu35 le 26-08-2006 à 14:45:01
Reply

Marsh Posté le 26-08-2006 à 14:54:32    

Abiss a écrit :

Si sa existe, on apelle cela un site web dynamique. En fait c'est un site qui comporte des fonctions complexe pour traiter de l'information. Mais bon tu n'été peut-être pas au courant!
 
Bref je vais réfléchir sur cette mise en cache. Merci pour ton aide


 
 
t es en retard vendredi c etait hier   :fou:  :fou:  :fou:

Reply

Marsh Posté le 26-08-2006 à 14:58:32    

Abiss a écrit :

Si sa existe, on apelle cela un site web dynamique. En fait c'est un site qui comporte des fonctions complexe pour traiter de l'information. Mais bon tu n'été peut-être pas au courant!
 
Bref je vais réfléchir sur cette mise en cache. Merci pour ton aide


Nan mais c'était du second degré, hein [:johneh]

Reply

Marsh Posté le 26-08-2006 à 15:10:08    

Ahhhh mais je vois que je suis tombé sur les vrai connard du fofo. Vous n'avez pas votre place ici si c'est pour faire chier le monde. Un forum c'est pour aider les gens, c'est pas pour les emmerder comme vous savez si bien faire apparament. Sur ce je vous emerde, allez vous faire bien enculer profond bande de pouri de merdeeeee. Conard

Reply

Marsh Posté le 26-08-2006 à 15:11:36    

Abiss a écrit :

Ahhhh mais je vois que je suis tombé sur les vrai connard du fofo. Vous n'avez pas votre place ici si c'est pour faire chier le monde. Un forum c'est pour aider les gens, c'est pas pour les emmerder comme vous savez si bien faire apparament. Sur ce je vous emerde, allez vous faire bien enculer profond bande de pouri de merdeeeee. Conard


Ben t'énerves pas comme ça... :(

Reply

Marsh Posté le 26-08-2006 à 15:16:55    

Abiss a écrit :

Ahhhh mais je vois que je suis tombé sur les vrai connard du fofo. Vous n'avez pas votre place ici si c'est pour faire chier le monde. Un forum c'est pour aider les gens, c'est pas pour les emmerder comme vous savez si bien faire apparament. Sur ce je vous emerde, allez vous faire bien enculer profond bande de pouri de merdeeeee. Conard


Ah nan on te dit juste la vérité hein !!
C'est surtout que même si c'est une application que tu as faite. Tu ne pourras quand même pas aller à l'encontre des navigateurs.
et puis comme tu nous parles sur ce ton tu peux aller te f.... e..... bien p..... si tu le souhaite.  
Mais nous ne somme pas des connards.

Reply

Marsh Posté le 26-08-2006 à 17:04:20    

Abiss a écrit :

Un forum c'est pour aider les gens


 

Citation :

FORUM.  (UM se prononce OME.) n. m. T. d'Antiquité romaine. Place où le peuple s'assemblait, à Rome, pour les affaires publiques, ou Place où se tenait quelque marché. Le plus ancien forum, ou Forum proprement dit, était situé entre le Capitole et le mont Palatin. Le forum de Nerva. Le forum de Trajan.
 
Figurément et en style oratoire, il désigne le Lieu où se discutent les affaires publiques. L'éloquence du forum. Les luttes du forum.


 
c est pas pour aider els gens a la base c est pour se faire du pognon [:pingouino]
c est devenu ensuite une place publique a cause du marché entre autres
mais je sais pas ou t as été chercher ta notion d aide
on etait bien entre nous jusqu a ce qu un gros nase vienne nous faire chier parce qu il veut desactiver quelque chose qui est par essence [:aloy] impossible
mais ptet que t etais pas au courant [:pingouino]

Reply

Marsh Posté le 26-08-2006 à 18:33:56    

Mon post ne va pas servir à grand chose, mais j'aimerais faire une remarque sur le retour arrière.
Quel est l'interet de brider à ce point les utilisateurs ?  
Si ton code est tel que le retour arrière ne marche pas et que tu dois en recoder un dans ta page web, alors ton site est à refaire.
Si c'est purement politique, il faudrait arrêter de faire plaisir au décideurs, et leur expliquer que ça ne sert à rien d'autre qu'à créer une frustration chez les usagers.
Enfin, si vous voulez avoir le contrôle total, n'utilisez pas le support web, mais développez une appli cliente bien proprio.


Message édité par axelazerty le 26-08-2006 à 18:35:34
Reply

Marsh Posté le 26-08-2006 à 18:35:58    

Comme dit, les solutions existent pour que le bouton précédent ne soit pas gênant : désactivation de la mise en cache par exemple...

Reply

Marsh Posté le 26-08-2006 à 18:39:44    

oui, c'est utile pour éviter de conserver des données qui auraient pu être mises à jour. Mais j'ai l'impression que le blocage du retour arrière demandé ici est plus une manoeuvre de cdontrôle des utilisateurs (pourquoi d'ailleurs ? en quoi le retour arrière est génant ? sa réponse "c'est un prog pour une entreprise" me laisse perplexe) qu'une assurance de la validité des données.

Reply

Marsh Posté le 27-08-2006 à 12:50:25    

admettons.. que tu ai à passer de l'étape 1 à l'étape 2, mais si l'utilisateur revient à l'étape 1 change le formulaire et appuye sur <<valider>> tu te retrouve avec deux entrées différentes dans ta base de donnée, ce qui est gênant.
 
Donc pour bien faire, dans l'url (voire aussi dans les variables de sessions) tu utilise un paramètre que tu enregistre en parrallèle dans une base de donnée, indiquant quel est la dernière étape à laquelle l'utilisateur était.
 
Maintenant, quand l'utilisateur revient en arrière, l'étape 1 n'accepte pas d'être mise en cahce, donc peut se rendre compte que l'utilisateur vient de l'étape 2 (en regardant dans la base de donnée et/ou dans les variables de sessions).
 
Ok, puisque l'utilisateur a utilisé le bouton Précédant de son navigateur, tu effectue les opérations necessaires pour retirer les infos de ta BDD concernant l'étape 2. Tu lui propose de modifier l'étape 1.
 
Etc.... ça necessite en effet de penser à l'avance comment fonctionne ton application, et si tu te lance directement dans le code tu va droit dans le mur.
 
En plus de détecter quand l'utilisateur appuye sur les boutons Précédent/Suivant du navigateur, tu peut ajouter des boutons supplémentaires dans tes pages qui ont le même effet et qui sont <<plus jolis>>. L'avantage est que les utilisateurs ne sont pas perdus la première fois quils utilisent ton logiciel, et n'ont pas de message d'erreur <<bouton Précedant désactivé>> qui ferait penser que ton application a planté ou n'est pas bien conçue.

Reply

Marsh Posté le 27-08-2006 à 18:40:39    

ce problème d'étape1 , 2, etc peut être gérée par la partie métier de l'appli, enfin c'est comme ça que je fais, mais c'est vrai que c'est une autre possibilité.  
Merci de tes précisions.

Reply

Marsh Posté le 27-08-2006 à 19:16:36    

Abiss a écrit :

Ahhhh mais je vois que je suis tombé sur les vrai connard du fofo. Vous n'avez pas votre place ici si c'est pour faire chier le monde. Un forum c'est pour aider les gens, c'est pas pour les emmerder comme vous savez si bien faire apparament. Sur ce je vous emerde, allez vous faire bien enculer profond bande de pouri de merdeeeee. Conard

Hop, un winner de notre grand lot de 1 mois de ban gratuit...
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 28-08-2006 à 01:00:12    

Abiss a écrit :

Salut,
 
Mon logiciel stock des valeurs dans une base de données et de manière organisé. Quand l'utilisateur utilisera le bouton retour arrière, il retrouvera les enciennes pages déjà validées; ce qui peut induire des erreurs lors de la réactualisation des pages précédente.
[/quote]  
Oui si tu vérifies pas  :whistle:  
[quote]Or un logiciel et développé pour être exécuté dans un sens logique et chronologiques pour ne pas qu'il s'embrouille les pinceaux. D'ailleurs, pour m'entrainer, j'ai fait une minie application ou l'utilisateur enregistre basiquement des valeurs dans une table. Ce programme marche très bien, mais si l'utilisateur fait l'erreur d'utiliser le bouton retour page précédente, parfois une page avec plein de merde apparait.
 
Merci de votre aide


Idem, l'utilisateur ne se trompe jamais que si tu lui en laisses la possibilité  :o  
 
En gros t'as du boulot pour comprendre que c'est à toi de valider tes données et qu'en plus de ça tu dois anticiper les boulets et agir en conséquences  :ange:  
 
L'utilisateur n'est jamais responsable d'un bug (c)

Reply

Marsh Posté le 28-08-2006 à 11:35:34    

Abiss a écrit :

Salut,
 
Avez-vous enfin trouvé une solution fiable pour résoudre les problèmes liés au bouton retour page précédente? Moi aussi je voudrais développer un logiciel avec Internet Explorer essencielement en PHP et MySQL.
 
Pedro BD, qu'a-tu finalement trouvé comme solution pour développer seinement ton logiciel?
 
Merci infiniment


 
Hey, j'ai l'impression que mon post a eu pas mal de succès. J'ai finalement pas trouvé de solution idéale (comme on peut s'en douter). En fait j'ai l'impression que le mieux est d'utiliser la désactivation du cache...même si c'est pô terrible. Y a pas moyen de personnaliser à sa guise IE?

Reply

Marsh Posté le 28-08-2006 à 11:43:23    

Sinon y une autre solution c'est de forcer le plein écran, par exemple j'ai trouvé sur un forum:
 
<script language="javascript">
top.resizeTo(window.screen.availWidth,window.screen.availHeight);
top.moveTo(0,0);
</script>
 
Et d'empêcher le click droit. Après y a plus qu'à bloquer l'action du backspace. Je pense pour ma part que c'est la meilleure solution, mais j'ai pas encore testé!
 
Je vous tiens au courant.

Reply

Marsh Posté le 28-08-2006 à 11:51:41    

franchement, des sites qui brident à se point l'utilisateur, redimensionnent les fenêtres, je reste pas 5 min dessus...

Reply

Marsh Posté le 28-08-2006 à 11:55:48    

PedroBD a écrit :

Sinon y une autre solution c'est de forcer le plein écran, par exemple j'ai trouvé sur un forum:
 
<script language="javascript">
top.resizeTo(window.screen.availWidth,window.screen.availHeight);
top.moveTo(0,0);
</script>
 
Et d'empêcher le click droit. Après y a plus qu'à bloquer l'action du backspace. Je pense pour ma part que c'est la meilleure solution, mais j'ai pas encore testé!
 
Je vous tiens au courant.


Suffit de désactiver JS alors :D Ou d'avoir FireFox et d'utiliser une extension qui interdit l'interdiction du bouton droit.
 
Nan sérieux, si l'application est correctement développée, le bouton précédent ne pose aucun problème...

Reply

Marsh Posté le 28-08-2006 à 11:58:01    

Je fais pas un site public, je fais un truc privé pour une entreprise, mais à base interface web...dans mon cas c'est nécessaire!

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed