URL et nouveautés 4D 2004

David ADAMS

4e Dimension 2004 inclut un changement significatif dans la façon dont les requêtes sont, dans certaines circonstances, envoyées d’un formulaire. Pour la première fois, les développeurs 4e Dimension ont une totale liberté sur la façon de nommer les URL soumises à 4e Dimension. ♪

- Titre : URL et nouveautés 4D 2004

- Auteur : David ADAMS

- Parution : 1 juin 2005

- Licence : Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.

Sommaire

- I. Résumé

- II. URL et LIRE VARIABLES FORMULAIRE WEB

- III. Comment les URL sont-elles traitées ?

I - Résumé

4e Dimension 2004 inclut un changement significatif dans la façon dont les requêtes sont, dans certaines circonstances, envoyées d’un formulaire. Pour la première fois, les développeurs 4e Dimension ont une totale liberté sur la façon de nommer les URL soumises à 4e Dimension. Dans le passé, les formulaires soumis à un Web Server 4D avec la méthode HTTP POST, devait commencer par un 4DACTION, 4DCGI ou 4DMETHOD, comme les exemples ci-dessous :

http://www.exemple.com/4DACTION/Web_Recherche/

http://www.exemple.com/4DCGI/Process_Application/

Vous pourriez vouloir prendre le contrôle du contenu exact de ces URL pour des raisons d’esthétique, de sécurité ou toute autre raison. En utilisant 4e Dimension 2004, les requêtes peuvent désormais consister en n’importe quelle URL valide, telle que les exemples ci-dessous :

http://www.exemple.com/cgi-bin/process_form.php

http://www.exemple.com/forms/sea

http://www.exemple.com/MyStore/WebObjects/MyStore.woa

http://www.exemple.com/forms/search.aspx

Cette note technique détaille les changements dans le Server Web de 4e Dimension.

II - URL et LIRE VARIABLES FORMULAIRE WEB

Le manuel 4D 2004 de Mise à jour décrit le nouveau comportement de cette commande en ces termes :

- « Les capacités de cette commande ont été étendues dans 4e Dimension 2004 : il est désormais possible de l’utiliser dans tous les cas, quel que soit le type d’URL envoyé au serveur Web. En particulier, elle fonctionne maintenant avec les formulaires HTML envoyant des données POST vers toute URL.

- Dans les versions précédentes de 4e Dimension, seules les requêtes débutant par /4DACTION, /4DMETHOD et /4DCGI ou contenant une chaîne d’interrogation pouvaient être analysées par cette commande. »

Pour apprécier la modification, il est nécessaire de comprendre l’ancien fonctionnement. Les données formulaires soumises au Server Web de 4D en utilisant la méthode POST étaient disponibles à trois endroits :

- dans $2 de la Méthode base Sur authentification Web ;

- dans $2 de la Méthode base Sur connexion Web, si invoquée ;

- dans les tableaux récupérés par un appel à la commande LIRE VARIABLES FORMULAIRE WEB.

Dans les précédentes versions de 4e Dimension, les données « postées » n’étaient pas traitées si l’URL ne commençait pas avec un des mots-clés spéciaux de 4D. Il n’y avait pas de contournement à cette limitation native du serveur Web.

III - Comment les URL sont-elles traitées ?

Chaque mot-clé 4D dans une URL est traité d’une façon différente par le server Web, comme résumé ci-dessous :

Mot-clé

Comportement

4DACTION

Lance la Méthode Compiler_Web, si définie

Lance la Méthode base Sur authentification Web

Lance la Méthode projet indiquée après le 4DACTION.

4DCGI

Lance la Méthode Compiler_Web, si définie

Lance la Méthode base Sur authentification Web

Lance la Méthode base Sur connexion Web

4DMETHOD

Lance la Méthode base Sur authentification Web

Lance la Méthode base Sur connexion Web

Lance la Méthode projet nommée après le 4DMETHOD, en mode contextuel.

Que se passe-t-il dans le cas d’une URL particulière, comme dans l’exemple ci-dessous ? :

http://www.exemple.com/forms/search/

Si l’URL est le chemin d’accès à un document hébergé par le serveur Web de 4D, le document est servi normalement. Sinon, 4e Dimension traite la requête en tant qu’URL inconnue. 4D suit le même cheminement que pour un 4DCGI

URL inconnue

Lance la Méthode Compiler_Web, si définie

Lance la Méthode base Sur authentification Web

Lance la Méthode base Sur connexion Web

Ce comportement est le même en 4D 2004 et en 4D 2003. La différence est qu’en 4D 2004, le POST est désormais disponible. Le plus simple pour extraire des données d’un formulaire est d’utiliser le code ci-dessous :

1. TABLEAU TEXTE (web_form_field_noms_at;0)

2. TABLEAU TEXTE (web_form_field_valeurs_at;0)

3. LIRE VARIABLES FORMULAIRE WEB (web_form_field_noms_at;web_form_field_valeurs_at)

La commande LIRE VARIABLES FORMULAIRE WEB peut être appelée n’importe où dans le process traitant la requête web. Le plus pratique est de l’appeler dans la Méthode base Sur authentification Web et de garder les valeurs récupérées dans deux tableaux process pour les utiliser dans la Méthode.