-
    Techniques et conseils

Note: L'ensemble des "Tips of the Week" de l'éditeur OmniPilot sont régulièrement traduits chaque semaine. Vous les retrouvez ci-après

LISTE DES TUTORIAUX

Formatage de nombres et calculs FileMaker Pro sous Lasso

Passer facilement de FileMaker Pro CDML à Lasso Professional 8

Outil de Maintenance MySQL

Indicateur de progression - Progress bar

Uploads de fichiers sous Lasso Professional 8

Utilisation des arrays pour la création d'inlines dynamiques

Balises de gestion du Cache

Méthodes d'appel des balises

Encryption de données

Notions de Sessions

Gestion des erreurs

Pages d'erreur customisées

Variables globales

Optimisations de MySQL

Symboles d'assignation mathématiques

Expression régulières (Nettoyage du texte)

Expressions régulières (Rechercher/remplacer)

Expressions régulières (principes de base)

Optimisez votre code HTML en utilisant les balises [Loop] et [Iterate]

Utilisation des boucles (Loops)

Utilisation de la balise [Action_Params]

Techniques de commentaires


     
Blueworld, Windows Server 2003, Windows XP, RedHat, Linux, Mac OS X, MACOS, Apache, MySQL, FIlemaker Pro

Edité par OmniPilot Software, Lasso Professional fonctionne sous Windows 2000/2003/XP et Linux RedHat et Apache Server - Il s'intègre parfaitement à MySQL™ et FileMaker Pro™ ainsi que toutes autres bases de données
     




Déposez votre nom de domaine avec ELIDEE
Article #: 2202004644

Sujet:
Utilisation de la balise [Action_Params]

Résumé:
Cet article discute de techniques avancées pour la manipulation des données issues des [Action_Params] lors de l'utilisation de formulaires HTML et sur les opérations impliquant des bases de données.

Description:
Si vous avez déjà créé des formulaires HTML pour soumettre des données à une base de données via Lasso Professional, vous êtes probablement familier des balises [Action_Params].

En un mot, la balise [Action_Params] renvoie toutes les données transmises par un formulaire dans une liste array sous la forme depairs, où le nom est le nom du champ du formulaire HTML et la valeur est la valeur entrée par l'utilisateur dans ce champ de formulaire.

Ainsi, si vous avez un formulaire HTML qui contient les champs de saisie (text) suivants:

<form action="response.lasso" method="post">
<input type="text" name="fonction">
<input type="text" name="prenom">
<input type="text" name="nom">
<input type="submit" value="valider">
</form>

Puis que vous utiliser la balise [Action_Params] sur la page de réponse, cette dernière affichera la chaîne de caractères suivante:

[array: (pair: -nothing=''), (pair: -operatorlogical='and'), (pair: -maxrecords=50), (pair: -skiprecords=0), (pair: -op='bw'), (pair: 'fonction'='la fonction entrée par l'utilisateur'), (pair: -op='bw'), (pair: 'prenom'='le prénom entré par l'utilisateur'), (pair: -op='bw'), (pair: 'nom'='le nom entré par l'utilisateur')]

Avez-vous noté au passage toutes les informations additionelles renvoyées par la balise [Action_Params] qui ne sont pas des données de formulaire ? Ces informations sont affichées par Lasso par anticipation sur une action sur la base de données, rendant encore plus facile l'utlisation de la balise [Action_Params] dans une action sur la base par un [Inline].

[Inline: (Action_Params), -Database='Contacts', -Table='People', -Search]
[Records]
[Fonction] [Prenom] [Nom]
[/Records]
[/Inline]

Les valeurs par défaut pour les balises de commandes -Op, -OperatorLogical, -MaxRecords, et -SkipRecords [Inline] sont automatiquement reprises par la balise [Action_Params]; ainsi le développeur n'a pas à les préciser dans la balise [Inline] si ces valeurs par défaut lui conviennent.

Dans le cas contraire, toutes les valeurs prises dans [Action_Params] peuvent être re-écrites en ajoutant les valeurs souhaitées à l'intérieur même d'une balise [Inline]. Dans l'exemple ci-dessus, la balise de commande -Search supplante la balise par défaut -Nothing instruisant ainsi à l'inline d'effectuer une recherche des enregistrements basée sur les données renvoyées par [Action_Params].

C'est ok pour vous ?

Si l'un des aspects de cet article vous parait confus, ne vous inquiétez pas. Cette introduction décrit seulement brièvement les fonctions principales de la balise [Action_Params] ce que vous n'avez pas besoin nécessairement de savoir pour l'utiliser avec succès.

Cependant, la chose importante à réaliser est que la balise [Action_Params] est simplement une liste de type Array Lasso qui contient un jeu de données de type Pair (paires). Elle ne diffère pas d'une variable que vous auriez définit vous-même et qui contiendrait votre propre jeu de paires de données.

Une fois réalisé ceci, vous vous apercevez que vous pouvez définir les [Action_Params] comme une variable, la manipuler comme vous le souhaitez (en utilisant les balises Lasso de traitement des array et des pair), et enfin utiliser cette variable dans une balise [Inline] en lieu et place de la balise originelle [Action_Params].

[Var: 'Params'=(Action_Params)]

<<< Manipulation de la variable $Params ici >>>

[Inline: $Params, -Database='Contacts', -Table='People', -Add]
[/Inline]

Pourquoi transformer les [Action_Params]?

[Action_Params] fournissent un moyen simple de récupérer les données transmises par un formulaire et de les convertir en une opération sur une base de données avec très peu de code. Cependant, le comportement par défaut de la balise [Action_Params] n'est pas ce qui convient à toutes les situations qui peuvent être :

- des situations où le nom des INPUTS (champs) du formulaire ne correspondent pas exactement aux noms de la base de données pour des raisons de sécurité (au regard des préconisations de l'OWASP il s'agit d'une façon de faire recommandée pour amélioré la sécurité de vos développements).

- des situations où vous souhaitez filtrer et valider les informations transmises avant de soumettres les [Action_Params] directement à la base de données.

- pour les formulaires qui permettent l'upload d'un fichier en même temps qu'ils soumettent des informations à votre base de données.

- pour les formulaires qui contiennent différents champs sur différentes tables ou différentes bases de données.

Si le champ récupéré par la balise [Action_Params] n'existe pas dans votre base de données et que vous utilisez [Action_Params] pour soumettre ces informations directement à la base sans les filtrer ou les transformer vous obtiendrez une erreur.

L'alternative à l'utilisation de la balise [Action_Params] est généralement de traiter un à un les champs issus du formulaire dans la page de réponse suivant la soumission de ce dernier. Cette façon de procéder peut être particulièrement fastidieuse sur de longs formulaires comprenant de nombreux champs.

Les exemples suivant décrivent un moyen basique simple pour modifier les [Action_Params] pour atteindre le résultat souhaité. Pour une documentation spécifique sur l'utilisation de l'une quelconque de ces balises utilisées dans l'exemple, veuillez consulter la Référence LDML ou consulter le manuel Lasso 7 Language Guide fournit avec Lasso.

Note: veuillez noter que la balise [Action_Params] n'est pas réellement modifiée mais seulement la variable qui est la copie des données issues de [Action_Params]. La balise [Action_Params] ne peut être modifiée en elle même.

Pour retirer un le nom d'un champ de [Action_Params]:

Le code ci-dessous va rechercher dans [Action_Params] un nom spécifié et en retirer toutes les instances correspondantes. Ceci est réalisé par l'utilisation des balises [Iterate],[Array->FindIndex], et [Array->Remove].

[var:'Field_Name'='Prenom']

[var:'Params'=(Action_Params)]
[var:'Item'=$Params->(FindIndex: $Field_Name)]
[Iterate: $Item, (var:'temp')]
[$Params->(Remove: $temp)]
[/Iterate]

[Inline: $Params, -Database='Contacts', -Table='People', -Add]
[/Inline]

Pour remplacer un nom de champ dans [Action_Params]:

Le code suivant va rechercher dans [Action_Params] le nom d'un champ donné. Les données soumises à l'aide de l'ancien nom seront désormais associées avec le nouveau nom.

Ceci est réalisé par les balises [Iterate], [Array->FindIndex], [Array->Get], [Array->Insert], [Array->Remove], [Pair], et [Pair->Second].

[var:'Ancien_nom'='prefix_xyz']
[var:'Nouveau_nom'='Titre']

[var:'Params'=(Action_Params)]
[var:'Item'=$Params->(FindIndex: $Oldname)]
[Iterate: $Item, (var:'Index')]
[var:'Item2'=(Pair: $Newname=$Params->(Get: $Index)->Second)]
[$Params->(Remove: $Index)]
[$Params->(Insert: $item2, $Index)]
[/Iterate]

[Inline: $Params, -Database='Contacts', -Table='People', -Add]
[/Inline]


Pour remplacer le nom d'un champ et sa valeur dans [Action_Params]:

Le code suivant recherche dans la balise [Action_Params] un nom de champ donné et en remplace toutes les instances trouvées par un nouveau nom. Les données soumises sous l'ancien nom de champ seront remplacées par les données que nous avons défini.

Ceci est réalisé par l'utilisation des balises [Iterate], [Array->FindIndex], [Array->Get], [Array->Insert], [Array->Remove], et [Pair] LDML tags.

[var:'Ancien_Nom='FirstName']
[var:'Nouveau_Nom'='Prenom']
[var:'Value'='Greg']

[var:'Params'=(Action_Params)]
[var:'Item'=$Params->(FindIndex: $Oldname)]
[Iterate: $Item, (var:'Index')]
[var:'Item2'=(Pair: $Newname=$Value)]
[$Params->(Remove: $Index)]
[$Params->(Insert: $item2, $Index)]
[/Iterate]

[Inline: $Params, -Database='Contacts', -Table='People', -Add]
[/Inline]


Pour valider un formulaire en s'assurant que certaines valeurs spécifiques ont été passées avant de les soumettre à une base de données:

Le code suivant recherche dans les [Action_Params] de manière à s'assurer qu'une paire nom/valeur est bien présente avant d'effectuer une opération sur la base de données. Si les données attendues ne sont pas présentes, un message d'erreur sera affiché.

Ceci est réalisé par l'utilisation des balises [Array->FindIndex], [Array->Size], [If], et [Pair] LDML tags.

[var:'Params'=(Action_Params)]

[var:'Check'=(Pair: 'valid'='123456789xyz')]
[If: $Params->(FindIndex: $Check)->Size == 1]
   [Inline: $Params, -Database='Contacts', -Table='People', -Add]
   [/Inline]
[Else]
   Erreur, cette donnée ne provient pas du formulaire adéquat.
[/If]


Produit:    Lasso Professional
Plateformes:    Mac OS X, Windows 2000, Windows XP, Windows 2003, Red Hat Linux
Versions:    6.x, 7.x
Auteur:    Aaron Smalser (Blue World)


     
Retour accueil
Lasso Studio
Lasso Professional
Communiqués Presse
Tutoriaux
Lasso & Filemaker
Evaluation gratuite
Hébergement Lasso/MySQL
Revendeurs
Historique logiciel
Tarifs - Commander
Nous contacter
     

Notre numéro de téléphone : +33 5 57 22 89 35

Hébergement mutualisé Lasso




Hébergement et location de baies de serveurs et Transit IP par ELIDEE


-  Accueil  -  Développer avec Lasso Studio  -  Déployer avec Lasso Professional  --
Administration du site webmaster@elidee.com | Copyright 2004-2010, Elidée SARL. Tous droits réservés
Toutes les marques citées sont déposées par leur propriétaire respectif