Méthode base Sur connexion Web

4D - Documentation   Français   English   German   Español   Japanese   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant

version 2004 (Modifiée)


La Méthode base Sur connexion Web peut être appelée dans trois cas distincts :

le serveur Web reçoit une requête débutant par l'URL 4DCGI.

le serveur Web reçoit une requête invalide.

elle est également appelée par 4D (mode local) et 4D Server chaque fois qu'un navigateur Web se connecte à la base en mode contextuel ou qu'une requête nécessite la création d'un contexte (ce cas n'est pas géré par 4D en mode distant qui ne prend pas en charge le mode contextuel).

Pour plus d'informations, reportez-vous ci-dessous au paragraphe "Appels de la Méthode base Sur connexion Web".

La requête doit auparavant avoir été "acceptée" par la Méthode base Sur authentification Web (si elle existe), et la base doit être publiée en tant que serveur Web.

La Méthode base Sur connexion Web reçoit six paramètres de type Texte, passés par 4D ($1, $2, $3, $4, $5 et $6). Voici leur description :

ParamètresTypeDescription
$1TexteURL
$2TexteEn-tête + corps HTTP
$3TexteAdresse IP du navigateur
$4TexteAdresse IP appelée du serveur
$5TexteNom d'utilisateur
$6TexteMot de passe

Vous devez déclarer ces six paramètres de la manière suivante :

      ` Méthode base Sur connexion Web

   C_TEXTE($1;$2;$3;$4;$5;$6)

      ` Code pour la méthode

Données supplémentaires de l'URL

Le premier paramètre ($1) est l'URL saisi par l'utilisateur dans la zone 'Adresse' de son navigateur Web, moins l'adresse hôte.

Prenons l'exemple d'une connexion Intranet. Supposons que l'adresse IP de votre machine serveur Web 4D est 123.4.567.89. Le tableau suivant liste les valeurs de $1 selon l'URL saisi dans le navigateur Web :

URL saisi dans le navigateurValeur du paramètre $1
123.4.567.89/
http://123.4.567.89/
123.4.567.89/Clients/Clients
http://123.4.567.89/Clients/Clients
http://123.4.567.89/Clients/Ajouter/Clients/Ajouter
123.4.567.89/Faire_ceci/Si_OK/Faire_cela/Faire_ceci/Si_OK/Faire_cela

Notez que vous êtes libre d'utiliser ce paramètre à votre convenance. 4D ignore simplement les valeurs passées au-delà de la partie hôte de l'URL. Par exemple, vous pouvez établir une convention dans laquelle la valeur "/Clients/Ajouter" signifie "aller directement à l'ajout d'un nouvel enregistrement dans la table [Clients]." En fournissant aux utilisateurs Web de votre base une liste des valeurs possibles et/ou des marqueurs par défaut, vous pouvez proposer des raccourcis vers différentes parties de votre application. Ainsi, les utilisateurs Web peuvent accéder rapidement aux ressources de votre site Web sans devoir naviguer dans toute la base à chaque connexion.

ATTENTION : Pour empêcher un utilisateur d'accéder directement à une base à l'aide d'un marqueur créé pendant une session précédente, 4D intercepte tout URL correspondant à un des URLs standard de 4D.

En-tête et corps de la requête HTTP

Le deuxième paramètre ($2) est l'en-tête suivi du corps de la requête HTTP envoyée par le navigateur Web. Notez que ces informations sont passées telles quelles à votre Méthode base Sur connexion Web. Le contenu varie en fonction du type de navigateur Web qui tente de se connecter.

Avec Netscape 4.5 sous Mac OS, vous recevrez un en-tête semblable à celui-ci :

GET / HTTP/1.0

Connection: Keep-Alive

User-Agent: Mozilla/4.5 (Macintosh; I; PPC)

Host: 123.45.67.89

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*

Accept-Encoding: gzip

Accept-Language: fr

Accept-Charset: iso-8

Avec Microsoft Internet Explorer 6 sous Windows, vous recevrez un en-tête semblable à celui-ci :

GET / HTTP/1.0

Connection: Keep-Alive

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Host: 123.45.67.89

Accept: image/gif, image/x-xbitmap, image/pjpeg, */*

Accept-Language: fr

Si votre application exploite ces informations, il est de votre ressort d'analyser l'en-tête et le corps.

Adresse IP du navigateur

Le troisième paramètre ($3) reçoit l'adresse IP de la machine du navigateur. Cette information peut vous permettre, en particulier, de distinguer les connexions Intranet des connexions Internet.

Adresse IP demandée du serveur

Le quatrième paramètre ($4) reçoit l'adresse IP demandée du serveur Web 4D. En effet, 4D autorise le multi-homing, permettant d'exploiter des machines disposant de plusieurs adresses IP. Pour plus d'informations sur ce point, reportez-vous à la section Paramétrages du serveur Web.

Nom d'utilisateur et Mot de passe

Les paramètres $5 et $6 reçoivent le nom d'utilisateur et le mot de passe saisis par l'utilisateur dans la boîte de dialogue standard d'identification affichée par le navigateur, le cas échéant.

Cette boîte de dialogue apparaît pour chaque connexion dès que l'option Utiliser les mots de passe est cochée dans les Préférences (cf. section Sécurité des connexions).

Note : Si le nom d'utilisateur envoyé par le navigateur existe dans 4D, pour des raisons de confidentialité le paramètre $6 n'est alors pas rempli (il reçoit une chaîne vide).

Appels de la Méthode base Sur connexion Web


La Méthode base Sur connexion Web peut être utilisée comme point d'entrée dans le serveur Web 4D, soit à l'aide de l'URL spécial 4DCGI, soit à l'aide d'URLs de commande personnalisés. Elle joue aussi le rôle de point d'entrée en mode contextuel (avec 4D en mode local et 4D Server).

Attention : L'appel d'une commande 4D affichant un élément d'interface (ALERTE, DIALOGUE...) entraîne l'arrêt du traitement de la méthode.

La Méthode base Sur connexion Web est donc appelée dans les cas suivants :

lors de la connexion d'un navigateur à un serveur Web 4D fonctionnant en mode contextuel. La méthode base est appelée avec l'URL /<action>...

lorsque 4D reçoit l'URL /4DMETHOD. Le serveur Web passe en mode contextuel et la méthode base est appelée avec l'URL /4DMETHOD/NomMéthode dans $1.

lorsque 4D reçoit l'URL /4DCGI. La méthode base est appelée avec l'URL /4DCGI/<action> dans $1.

lorsqu'une page Web appelée avec un URL du type <chemin>/<fichier> n'est pas trouvée. La méthode base est appelée avec l'URL (*).

lorsqu'une page Web est appelée avec un URL du type <chemin>/ et qu'aucune page d'accueil par défaut n'est définie. La méthode base est appelée avec l'URL (*).

(*) Dans ces cas particuliers, l'URL reçu dans $1 ne débute pas par le caractère "/".

Pour connaître l'origine de l'appel de la Méthode base Sur connexion Web et adapter le traitement à effectuer, vous devez utiliser la fonction Contexte Web, qui retourne Vrai si elle est appelée depuis le mode contextuel, et Faux sinon.

Par conséquent, lorsque votre serveur Web manipule le mode contextuel et le mode sans contexte, nous vous conseillons de structurer la Méthode base Sur connexion Web de la manière suivante :

      `Méthode base Sur connexion Web
   C_TEXTE($1;$2;$3;$4;$5;$6)
   Si (Contexte Web)   `Si l'on est en mode contextuel
      AvecContexte ($1;$2;$3;$4;$5;$6)
         `La méthode AvecContexte contient tout ce qu'il y avait dans la 
         `méthode base Sur connexion Web en 4D 6.0.x
   Sinon
      SansContexte ($1;$2;$3;$4;$5;$6)
         `La méthode SansContexte effectue les traitements des requêtes 
         `non contextuelles (généralement courts)
   Fin de si

Exemple : implémentation des pages Home locales des clients en mode contextuel

Dans l'exemple suivant, le paramètre $1, envoyé à la méthode base Sur connexion Web, est utilisé pour implémenter les pages Home des clients dans une entreprise. Le serveur Intranet fonctionne en mode contextuel.

La base contient deux tables : [Clients] et [Tables]. La Méthode base Sur ouverture ci-dessous initialise les tableaux interprocess utilisés ultérieurement par la Méthode base Sur connexion Web.

      ` Méthode base Sur ouverture

      ` Liste des tables
   TABLEAU ALPHA(31;<>taTables;Lire numero derniere table)
   Boucle ($vlTable;1;Taille tableau(<>taTables);1;-1)
      Si(Est un numero de table valide($vlTable))
         <>taTables{$vlTable}:=Nom de la table($vlTable)
      Sinon
         SUPPRIMER DANS TABLEAU(<>taTables;$vlTable)
      Fin de si
   Fin de boucle 

      ` Actions Web standard à la connexion
   TABLEAU ALPHA(31;<>taActions;2)
   <>taActions{1}:="Ajouter"
   <>taActions{2}:="Visualiser"

Le principal objectif de la méthode base Sur connexion Web est de déchiffrer les données de l'URL situées après l'adresse de l'hôte et d'agir en conséquence. La méthode est la suivante :

      ` Méthode base Sur connexion Web

   C_TEXTE($1;$2;$3;$4;$5;$6)
   C_TEXTE($vtURL)

   Si (Contexte Web)   ` Si nous sommes bien en mode contextuel
         ` Par précaution, vérifiez que $1 est égal à "/" ou "/..."
      Si ($1="/@")
            ` Copier l'URL dans une variable locale moins le premier "/"  
         $vtURL:=Sous chaine($1;2)
            ` Analyser l'URL et remplir un tableau local avec les informations de l'URL
            ` Par exemple, si les données supplémentaires de l'URL sont "aaa/bbb/ccc", le tableau 
            ` contiendra les trois éléments "aaa", "bbb" et "ccc", dans cet ordre
         $vlElem:=0
         TABLEAU TEXTE($atTokens;$vlElem)
         Tant que ($vtURL # "")
            $vlElem:=$vlElem+1
            INSERER DANS TABLEAU($atTokens;$vlElem)
            $vlPos:=Position("/";$vtURL)
            Si ($vlPos>0)
               $atTokens{$vlElem}:=Sous chaine($vtURL;1;$vlPos-1)
               $vtURL:=Sous chaine($vtURL;$vlPos+1)
            Sinon 
               $atTokens{$vlElem}:=$vtURL
               $vtURL:=""
            Fin de si 
           Fin tant que 
            ` Si des données supplémentaires sont passées au-delà de la partie hôte de l'URL  
         Si ($vlElem>0)
               ` Utiliser le tableau interprocess initialisé dans la méthode base Sur ouverture
               ` Vérifier si la première information est un nom de table
            $vlTableNumber:=Chercher dans tableau(<>taTables;$atTokens{1})
            Si ($vlTableNumber>0)
                  ` Si oui, obtenir un pointeur vers cette table
               $vpTable:=Table($vlTableNumber)
                  ` Définir les formulaires entrée et sortie
               FORMULAIRE ENTREE($vpTable->;"Input Web")
               FORMULAIRE SORTIE($vpTable->;"Output Web")
                  ` Utiliser le tableau interprocess initialisé dans la méthode base Sur ouverture
                  ` Vérifier si la deuxième information est une action standard connue
               $vlAction:=Chercher dans tableau(<>taActions;$atTokens{2})
               Au cas ou 
                     ` Ajouter des enregistrements
                  : ($vlAction=1)
                     Repeter
                        AJOUTER ENREGISTREMENT($vpTable->;*)
                     Jusque (OK=0)
                     ` Visualiser les enregistrements        
                  : ($vlAction=2)
                     LECTURE SEULEMENT($vpTable->)
                     TOUT SELECTIONNER($vpTable->)
                     VISUALISER SELECTION($vpTable->;*)
                     LECTURE ECRITURE($vpTable->)
                  Sinon 
                     ` Ajouter éventuellement ici des actions standard supplémentaires à implémenter
               Fin de cas 
            Sinon 
               ` Ajouter éventuellement ici d'autres actions de table standard à implémenter
            Fin de si 
         Fin de si 
      Fin de si 
         ` Dans tous les cas, poursuivre le processus standard de connexion
      WWW CONNEXION STANDARD 
   Sinon 
      ...   ` Placer éventuellement ici le code gérant le mode sans contexte
   Fin de si

A ce stade, les membres de l'entreprise peuvent se connecter à la base et saisissent un URL en fonction des conventions définies. Les utilisateurs peuvent également créer des marqueurs "Favoris" s'ils ne veulent pas saisir l'URL à chaque connexion. En fait, la meilleure solution consiste à fournir à chaque membre de l'entreprise une page HTML qu'il peut utiliser en local pour accéder à la base. Voici la page HTML :

Autrement dit, la page HTML Dupont_IS.HTM est la page Home du client local pour le système d'informations de l'entreprise basé sur 4D. Si l'utilisateur clique sur le lien Créer produits, le navigateur Web se connectera à l'hôte dont l'URL est http://123.4.567.89/Produits/Ajout. Si l'adresse IP de l'ordinateur où se trouve la base est 123.4.567.89, la méthode base Sur connexion Web reçoit les données d'URL supplémentaires "/Produits/Ajout" dans $1 puis lance le processus d'ajout d'enregistrements à la table [Produits].

Enfin, les utilisateurs peuvent glisser-déposer les liens de cette page vers leur bureau pour créer une icône de raccourci Internet, telle que l'icône ci-dessous. Double-cliquer sur une de ces icônes envoie directement l'utilisateur dans la zone spécifiée de votre base 4D Web.

Le code source de cette page HTML est le suivant :

Référence

Méthode base Sur authentification Web, Présentation des méthodes base, URLs et actions de formulaires, Utiliser le mode contextuel.


4D - Documentation   Français   English   German   Español   Japanese   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant