2010-11-02 17 views
6

Ich habe eine einfache .shtml Datei, die ich eine Variable darin deklariert habe.SSI #set Variable und #echo Ausgabe

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

Aber wenn ich will den Wert drucken mit

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

es sagt

Variable 'testvar' kann nicht

Was ist das Problem gefunden werden? Ich benutze IIS 7.5 und ich habe auch in Apache2 getestet, aber es funktioniert auch nicht!

Antwort

0

Ich glaube, Sie benötigen eine Variable mit einem '$' vor ihm zu verweisen, etwa so:

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

Dies funktioniert gut für mich:

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

Sie haben Apache konfiguriert korrekt? Möglicherweise müssen Sie mod_include aktivieren. Der folgende Code sollte eine Ausgabe, wenn das Datum korrekt konfiguriert ist:

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

Versuchen,

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

Wenn nicht, dann, verwenden $ testvar um sicherzustellen, dass Ihre Variable als Variable behandelt.

1

Ich hatte das gleiche Problem. In meinem Fall habe ich eine Variable in der Hauptdatei gesetzt und versucht, sie in einer mitgelieferten Vorlage zu lesen.

Die Lösung war, die <!--#set nach der <!DOCTYPE Deklaration zu platzieren.

1

IIS unterstützt Ihren Code nicht.

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

IIS unterstützt #set nicht, deshalb reagiert es. "Variable 'testVar' kann nicht gefunden werden", weil sie nie erstellt wurde.

Windows-Server und Apache-Server haben denselben Modulnamen (SSI) und verwenden dieselbe Syntax. ABER! Der Apache-Server unterstützt #set und andere Befehle wie #if #else usw., was der Windows-Server nicht tut. Die Verwirrung ist also vollständig.

Eine Liste der Befehle, die Sie in IIS verwenden können: MSDN blog about SSI on IIS