DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Concepts WEBDEV / Partie 4 - Concepts avancés
  • Pourquoi gérer le "Back" ? Un exemple simple ...
  • Etape 1 : Affichage de la liste des fournisseurs
  • Etape 2 : Clic sur le lien "Clients".
  • Etape 3 : Clic sur le bouton "Back" du navigateur.
  • Comment gérer le "Back" ?
  • Exemple détaillé de gestion du Back
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
13. Avantage sécuritaire : la gestion du "Back"
Page précédenteSommairePage suivante
Un navigateur permet de parcourir les différentes pages d'un site à l'aide des boutons "Suivant" et "Précédent".
A chaque nouvelle page de type Session affichée sur le navigateur, un contexte de page spécifique à son traitement est créé sur le serveur.
Lorsqu'une même page de type Session est utilisée pour afficher des données différentes (page avec table fichier, zones répétées ou page de type "Fiche avec parcours", ...), le contexte de page présent sur le serveur varie en fonction des données affichées.
Lorsque l'internaute appuie sur le bouton "Précédent" (ou "Back"), le navigateur ne prévient ni le site ni le serveur. Le navigateur revient à la page précédente sans le contexte correspondant.
Aucune gestion particulière n'est nécessaire lorsque l'on fait un "Back" entre des pages différentes.
Une gestion spécifique est nécessaire pour une même page de type Session affichant des données différentes.
Pourquoi gérer le "Back" ? Un exemple simple ...
Pour comprendre la nécessité de la gestion du "Back", étudions un exemple simple : une page de type Session qui permet d'afficher la liste des fournisseurs.

Etape 1 : Affichage de la liste des fournisseurs

Le contexte contient la liste des founisseurs affichés dans le champ Table.

Etape 2 : Clic sur le lien "Clients".

Les clients sont affichés. Le contexte de la page sur le serveur est mis à jour : le contexte contient la liste des éléments affichés dans le champ Table (liste des clients).

Etape 3 : Clic sur le bouton "Back" du navigateur.

La page de type Session affichée sur le navigateur correspond à la page affichée à l'étape 1. Cependant le serveur n'est pas informé par le navigateur que l'internaute a utilisé la touche Back. Le contexte de page sur le serveur est toujours celui correspondant aux clients.
Si l'internaute sélectionne dans le champ Table un élément (un fournisseur), l'élément sélectionné sera l'élément correspondant dans le contexte : un client. Il y a désynchronisation entre la page dynamique visualisée et le contexte de page présent sur le serveur. Le moteur WEBDEV détecte cette désynchronisation.
Une gestion du bouton Back est nécessaire.
Comment gérer le "Back" ?
Pour gérer le "Back", vous pouvez utiliser :
  • le code de synchronisation de la page en mode Session. Ce code est appelé en cas de désynchronisation.
  • un champ de saisie caché (champ de saisie invisible) pour identifier l'enregistrement affiché sur le navigateur.
  • l'option "Appeler le traitement de synchronisation de la page si l'internaute a utilisé le bouton précédent du navigateur" sur vos boutons et/ou vos liens (onglet "Avancé" de la description du bouton).
Selon le type d'action pouvant être effectué dans la page en mode Session, il est possible de choisir et de combiner l'une ou l'autre de ces options.
Exemple détaillé de gestion du Back
Une page dynamique permet de parcourir les différents produits d'un site. Les boutons présents dans la page sont les suivants :
  • Retour au menu principal
    Cette action ne nécessite pas de gestion particulière du "Back". Ce bouton ne manipule pas les fichiers de données : une désynchronisation entre le contexte et la page affichée n'a pas d'influence.
  • Supprimer le produit en cours
    L'action "Supprimer le produit en cours" manipule un fichier de données. Il est important que l'enregistrement supprimé corresponde à l'enregistrement visualisé par l'internaute.
    Pour gérer le "Back" dans ce cas, il est conseillé d'utiliser :
    • un champ caché (invisible) dans la page dynamique : ce champ contiendra l'identifiant de l'enregistrement réellement en cours sur le navigateur.
    • le code de synchronisation : ce code permet de mettre à jour le contexte (recherche de l'enregistrement visualisé par l'internaute).
Les actions effectuées dans le code de synchronisation seront :
  1. Relecture de l'enregistrement correspondant à l'identifiant stocké dans le champ caché.
  2. Si l'enregistrement n'est pas trouvé : une page d'erreur est affichée et le code du bouton "Supprimer" n'est pas exécuté.
  3. Si l'enregistrement est trouvé, le contexte de page est alors automatiquement modifié sur le serveur : le code du bouton "Supprimer" est exécuté.
La sécurité totale !
Page précédenteSommairePage suivante
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale