2010-11-02 4 views
6

J'ai un simple fichier .shtml dans lequel j'ai déclaré une variable.SSI #set variable et numéro #echo

<!--#set var="testVar" value="12345" --> 

Mais quand je veux imprimer la valeur à l'aide

<!--#echo var="testVar" --> 

il dit

Variable 'testVar' ne peut pas être trouvé

Quel est le problème? J'utilise IIS 7.5 et j'ai aussi testé sur Apache2 mais ça ne marche pas non plus!

Répondre

0

Je pense que vous avez besoin de faire référence à votre variable avec un « $ » devant elle, comme ceci:

<!--#echo var="$testVar" --> 
1

Cela fonctionne bien pour moi:

<!--#set var="testVar" value="12345" --> 
<!--#echo var="testVar" --> 

Est-ce que vous avez Apache configuré correctement? Vous devrez peut-être activer mod_include. Le code suivant la date de sortie devrait une fois correctement configuré:

<!--#echo var="DATE_LOCAL" --> 
0

Essayez,

<!--#echo encoding="entity" var="testVar" --> 

Sinon alors, utilisez testVar de $ pour que votre variable traitée comme variable.

1

J'ai eu le même problème. Dans mon cas, je mettais une variable dans le fichier principal, et j'essayais de le lire dans un template inclus.

La solution était de placer le <!--#set après la déclaration <!DOCTYPE.

1

IIS ne prend pas en charge votre code.

<!--#set var="testVar" value="12345" --> 

IIS ne prend pas en charge #set, c'est pourquoi il répond. "Variable 'testVar' est introuvable", car il n'a jamais été créé.

Le serveur Windows et le serveur Apache ont le même nom de module (SSI) et utilisent la même syntaxe. MAIS! Le serveur Apache supporte #set et d'autres commandes comme #if #else etc, ce qui n'est pas le cas du serveur Windows. Donc, la confusion est complète.

Pour une liste des commandes que vous pouvez utiliser dans IIS: MSDN blog about SSI on IIS