Server Side Includes

Home

SSI Tutorial
Knowledge Developer Database Internet Resource
SSI Tutorial
1. แนะนำ SSI
2. การคอนฟิกให้แม่ข่ายยอมรับ SSI
3. คำสั่ง SSI พื้นฐาน
4. ตัวอย่างเพิ่มเติม
5. เทคนิค SSI ระดับสูง
6. สรุป
 
Internet
PHP
SSI
HTML
AJAX
 

ตัวอย่างเพิ่มเติม

ต่อไปเป็นตัวอย่างพิเศษที่สามารถทำให้เอกสาร HTML ด้วย SSI

การปรับปรุงเอกสารนี้

ในตอนต้นได้กล่าวว่าสามารถใช้ SSI ในการรายงานให้กับผู้ใช้ถึงการปรับปรุงเอกสารล่าสุด อย่างไรก็ตาม วิธีจริงในการทำให้มีคำสั่งทิ้งไว้ คำสั่งต่อไปนี้วางอยู่ในเอกสาร HTML และดึง timestamp บนเพจ โดยมีการเข้าถึง SSI อย่างถูกต้อง ตามการอภิปรายข้างบน

<!-- #config timefmt = “%A%B%d, %Y” -->

This document last modified <!-- #flastmod file = “ssi.html” -->

แน่นอนต้องแทนที่ไฟล์ ssi.html ด้วยชื่อจริงของไฟล์ที่อ้างถึง สิ่งนี้อาจจะไม่สะดวก ถ้ากำลังมองหาชุดคำสั่งที่สามารถวางไว้ในไฟล์ต่างๆ บางครั้งอาจจะต้องการตัวแปร LAST_MODIFIED แทน

<!-- #config timefmt = “%D” -->
This document last modified <!-- #flastmod file = “LAST_MODIFIED” -->

การรวมส่วนล่างมาตรฐาน

ถ้ากำลังจัดการเว็บที่มีเพจจำนวนมาก อาจจะพบว่าการแก้ไขเพจเหล่านั้นทั้งหมดเป็นความเจ็บปวด โดยเฉพาะอย่างยิ่ง ถ้ากำลังพยายามรักษามาตรฐานบางอย่างที่เหมือนกันบนเพจทั้งหมด

การใช้ไฟล์ที่รวม (include file) สำหรับส่วนหัว และ / หรือ ส่วนล่างสามารถลดภาระในการปรับปรุง เพียงแต่ต้องสร้างไฟล์ส่วนล่าง 1 ไฟล์ จากนั้นให้รวมไปยังแต่ละเพจด้วยคำสั่ง include ของ SSI หน่วยคำสั่ง include สามารถหาว่าไฟล์ที่ต้องการรวมด้วยแต่ละคุณลักษณะ file หรือคุณลักษณะ virtual คุณลักษณะ file เป็นพาร์ทของไฟล์ที่สัมพัทธ์กับไดเรคทอรีปัจจุบัน หมายความว่าไม่สามารถเป็นพาร์ทสัมบูรณ์ (เริ่มต้นด้วย / ) หรือสามารถเก็บ .. / เป็นส่วนหนึ่งของพาร์ท คุณลักษณะ virtual ใช้ประโยชน์ได้มากกว่าและสามารถระบุ URL สัมพัทธ์กับเอกสารที่รับบริการ โดยสามารถเริ่มต้นด้วย / แต่ต้องอยู่ในแม่ข่ายเดียวกับไฟล์ที่รับบริการ

<!-- #include virtual = “footer.html” -->

การคอนฟิกอื่น

นอกจากจากการใช้หน่วยคำสั่ง config รูปแบบเวลาแล้ว สามารถคอนฟิกได้ 2 อย่าง

ตามปกติ เมื่อเกิดความผิดพลาดกับคำสั่ง SSI จะได้รับข่าวสาร

[an error occurred while processing this directive ]

ถ้าต้องการเปลี่ยนข่าวสารเป็นอย่างอื่น สามารถทำได้ด้วยคุณลักษณะ errmsg กับหน่วยคำสั่ง config

<!-- #config errmsg = “[It appears that you don't know how to use SSI]” -->

หวังว่าผู้ใช้จะไม่เคยมองเห็นข่าวสารนี้ เพราะมีการแก้ไขปัญหาทั้งหมดเกี่ยวกับคำสั่ง SSI ก่อนการวางบนเว็บ

config ยังสามารถจัดรูปแบบขนาดไฟล์ส่งออกด้วยคุณลักษณะ sizefmt โดยสามารถระบุ bytes สำหรับการนับจำนวนเต็ม หรือ abbrev สำหรับจำนวนย่อเป็น Kb หรือ Mb ตามความเหมาะสม

การประมวลผลคำสั่ง

ต่อไปเป็นสิ่งที่สามารถทำด้วยหน่วยคำสั่ง exec โดยต้องมี SSI ประมวลผลคำสั่งด้วยการใช้ shell (/bin/sh สำหรับความแม่นยำ หรือ DOS shell ถ้าอยู่บน Win 32) ตัวอย่างนี้แสดงรายการไดเรคทอรี

<pre>
<!--#exec cmd="ls" -->
</pre>

หรือบน Windows

<pre>
<!--#exec cmd="dir" -->
</pre>

ให้สังเกตถึงรูปแบบแปลกออกไปของคำสั่งบน Windows เพราะผลลัพธ์จาก dir เก็บข้อความ “<dir>” ไว้ภายใน ซึ่งทำความสับสนให้กับ browser

หมายเหตุ ส่วนการทำงานนี้เป็นอันตรายเกินไป เนื่องจากจะประมวลผลคำสั่งทุกอย่างตามที่มีการวางไว้ใน exec ถ้าอยู่ในสถานการณ์ที่ผู้ใช้สามารถแก้ไขข้อมูลบนเว็บเพจ เช่น สมุดเยี่ยม ต้องทำให้มั่นใจว่าได้ทำให้ส่วนการทำงานเข้าไม่ถึง SSI สามารถรับอนุญาตได้ แต่ไม่ยอมให้กับส่วนการทำงาน exec ด้วยอากิวเมนต์ IncludeNOEXEC กับคำสั่ง Options

 


  

สงวนลิขสิทธิ์ (C) widebase / Julaphak