2010-11-02 23 views
6

Tôi có một tệp .shtml đơn giản mà tôi đã khai báo một biến trong đó.Biến số # SSI và số #echo

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

Nhưng khi tôi muốn in giá trị sử dụng

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

nó nói

Biến 'testVar' không thể được tìm thấy

vấn đề là gì? Tôi đang sử dụng IIS 7.5 và tôi cũng đã thử nghiệm trên Apache2 nhưng nó không hoạt động!

Trả lời

0

Tôi nghĩ rằng bạn cần phải tham khảo biến của bạn với một '$' ở phía trước của nó, như vậy:

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

này hoạt động tốt đối với tôi:

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

Bạn đã Apache cấu hình đúng không? Bạn có thể cần bật mod_include. Các mã sau đây nên sản lượng ngày một lần cấu hình đúng:

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

Cố gắng,

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

Nếu không sau đó, sử dụng $ testVar để đảm bảo Variable của bạn coi như biến.

1

Tôi gặp vấn đề tương tự. Trong trường hợp của tôi, tôi đã đặt một biến trong tệp chính và cố đọc nó trong một mẫu được bao gồm.

Giải pháp là đặt <!--#set sau tuyên bố <!DOCTYPE.

1

IIS không hỗ trợ mã của bạn.

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

IIS không hỗ trợ #set đó là lý do tại sao nó phản hồi. Không thể tìm thấy "testVar" biến "vì nó chưa bao giờ được tạo.

Máy chủ Windows và máy chủ Apache có cùng tên mô-đun (SSI) và chúng sử dụng cùng một cú pháp. NHƯNG! Máy chủ Apache hỗ trợ #set và các lệnh khác như #if #else etc mà máy chủ Windows không hỗ trợ. Vì vậy, sự nhầm lẫn hoàn tất.

Để biết danh sách các lệnh bạn có thể sử dụng trong IIS: MSDN blog about SSI on IIS

Các vấn đề liên quan