2010-11-02 8 views
6

Ho un semplice file .shtml in cui ho dichiarato una variabile.SSI #set variable e #echo issue

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

Ma quando voglio stampare il valore con

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

si dice

Variabile 'testVar' non può essere trovato

Qual è il problema? Sto usando IIS 7.5 e ho anche provato su Apache2 ma non funziona neanche!

risposta

0

penso che è necessario fare riferimento la variabile con un '$' di fronte ad essa, in questo modo:

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

Questo funziona bene per me:

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

Possiedi Apache configurato correttamente? Potrebbe essere necessario attivare mod_include. Il seguente codice dovrebbe uscita dalla data una volta configurato correttamente:

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

prova,

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

Se poi non, uso $ testVar per assicurarsi che il variabile trattata come variabile.

1

Ho avuto lo stesso problema. Nel mio caso, stavo impostando una variabile nel file principale e cercando di leggerla in un modello incluso.

La soluzione era quella di inserire il <!--#set dopo la dichiarazione <!DOCTYPE.

1

IIS non supporta il codice.

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

IIS non supporta #set è per questo che risponde. "Variable 'testVar' non può essere trovato", perché non è mai stato creato.

Il server Windows e il server Apache hanno lo stesso nome di modulo (SSI) e utilizzano la stessa sintassi. MA! Il server Apache supporta #set e altri comandi come #if #else ecc. Che il server Windows non ha. Quindi la confusione è completa.

Per un elenco dei comandi che si possono utilizzare in IIS: MSDN blog about SSI on IIS