URL et nouveautés 4D 2004

4ème 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 4ème Dimension ont une totale liberté sur la façon de nommer les URLs soumisent à 4ème Dimension.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Résumé

4ème 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 4ème Dimension ont une totale liberté sur la façon de nommer les URLs soumisent à 4ème 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 raison d'esthétique, de sécurité ou toute autre raison. En utilisant 4ème Dimension 2004, les requêtes peuvent désormais consister en n'importe quelle URL valide, tels 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 4ème Dimension.

II. URLS 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 4ème 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 tout URL.

  • Dans les versions précédentes de 4ème 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 4ème 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écials de 4D. Il n'y avait pas de contournement à cette limitation native du serveur Web.

III. Comment les URLs sont traités ?

Chaque mot-clé 4D dans un 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'un URL particulier, 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, 4ème Dimension traite la requête en tant qu'URL inconnu. 4D suit le même cheminement que pour un 4DCGI

URL inconnu 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 :

TABLEAU TEXTE (web_form_field_noms_at;0)
TABLEAU TEXTE (web_form_field_valeurs_at;0)
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.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

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.