EVAL |
Évaluer |
|---|---|
| ASP 3.0 | |
Syntaxe
| Function Eval(chaine As String) As Variant |
Paramètres
| Nom | Description |
|---|---|
| chaine | Ce paramètre permet d'indiquer la chaîne de caractères contenant l'expression à évaluer |
Description
Cette fonction permet d'interpréter des instructions ou blocs d'instructions ASP.
Remarques
- La fonction Eval permet d'exécuter dynamiquement une expression contenue dans une chaîne de caractères. Cela signifie que du code ASP peut être généré sous forme de texte, puis évalué et exécuté à l'exécution. C'est une fonctionnalité puissante mais aussi potentiellement risquée si mal utilisée.
- L'usage de Eval est utile lorsque le contenu du code à exécuter dépend d'une source externe ou d'une configuration dynamique. Par exemple, cela permet de construire des formules ou des appels de fonctions à la volée. Il est particulièrement adapté aux scénarios de moteurs de règles ou de logique métier personnalisable.
- Étant donné qu'Eval accepte une chaîne comme argument, il est indispensable que celle-ci soit correctement formatée. Une erreur de syntaxe dans la chaîne de caractères passée à Eval générera une exception à l'exécution. Il est donc recommandé d'effectuer une validation rigoureuse du contenu avant l'évaluation.
- Cette fonction retourne une valeur de type Variant, ce qui lui permet d'être très flexible dans le type de résultat qu'elle peut produire. Cela peut être un nombre, une chaîne de caractères, une date, ou tout autre type compatible avec le code exécuté. Toutefois, cela peut compliquer le typage et les vérifications ultérieures du résultat.
- Eval peut devenir un vecteur de failles de sécurité importantes si des utilisateurs non autorisés peuvent influer sur son contenu. Par exemple, exécuter une expression issue d'un champ de formulaire sans filtrage ouvre la porte à des attaques de type injection. Il est donc déconseillé d'utiliser Eval avec des données non maîtrisées.
- Contrairement à d'autres langages modernes utilisant l'évaluation dans des contextes contrôlés, Eval en ASP 3.0 ne fournit pas de mécanisme de sandboxing. Cela signifie que le code exécuté via Eval peut affecter l'environnement global du script ASP. Il est essentiel de bien comprendre l'impact de l'évaluation sur les variables et l'état général.
- Un cas d'usage pratique de Eval peut être de récupérer dynamiquement la valeur d'une variable dont le nom est entreposé sous forme de chaîne de caractères. Cela permet par exemple d'évaluer "var_" & n pour accéder à des variables dynamiques comme var_1, var_2,... Cependant, cette approche peut rendre le code plus difficile à maintenir et à déboguer.
- En raison de sa nature dynamique, Eval est souvent vu comme une solution de dernier recours, à utiliser avec parcimonie. Il existe souvent d'autres moyens plus sûrs et plus explicites pour arriver au même résultat. En ASP 3.0, mieux vaut privilégier des structures de contrôle et des fonctions claires, sauf si une flexibilité extrême est indispensable.
Exemple
Voici un exemple d'une utilisation typique de cette fonction :
on obtiendra le résultat suivant :
eval("777") = 777eval("MaFonction()") = Gladir.com
eval("8*8+1") = 65
Voir également
Langage de programmation - Structure de données - Évaluation d'expression («Infix to Postfix»)
Articles - Les géants de l'informatique - Microsoft
Dernière mise à jour : Vendredi, le 10 octobre 2014