สอนเขียนเว็บด้วย ASP

สอนเขียนเว็บด้วย ASP

ASP (Active Server Pages) เป็นเทคโนโลยีเว็บของ Microsoft ที่รันบนเซิร์ฟเวอร์ IIS โดยหน้าเว็บผสมโค้ดฝั่งเซิร์ฟเวอร์กับ HTML ปัจจุบันมีการพัฒนาต่อด้วย ASP.NET Core แต่ระบบเก่าจำนวนมากยังใช้ ASP แบบคลาสสิก (VBScript) บทความนี้อธิบายหลักการทำงาน การรับค่าจากฟอร์ม และแนวทางปฏิบัติที่ควรรู้

หมายเหตุการทดสอบ: เครื่องที่ใช้เขียนบทความนี้ไม่มี IIS และ ASP จึงยังไม่ได้รันโค้ดในบทความ ก่อนใช้งานให้ติดตั้ง IIS พร้อม ASP แล้วทดสอบเองก่อนนำไปใช้จริง

สิ่งที่ต้องเตรียม

ภาพรวมการทำงาน

ภาพแผนผัง: เบราว์เซอร์ส่งคำขอไปยังหน้า ASP บน IIS และได้รับ HTML กลับมา
ภาพแผนผัง: เบราว์เซอร์ส่งคำขอไปยังหน้า ASP บน IIS และได้รับ HTML กลับมา

หน้า ASP แรก

สร้างไฟล์ `hello.asp` แล้วพิมพ์โค้ดนี้

<%@ Language="VBScript" %>
<html>
<body>
  <h1>สวัสดี ASP</h1>
  <p>เวลาบนเซิร์ฟเวอร์: <%= Now() %></p>
</body>
</html>

`<% ... %>` คือโค้ดที่รันบนเซิร์ฟเวอร์ และ `<%= ... %>` พิมพ์ค่าลงในหน้า HTML ที่ส่งกลับไปยังเบราว์เซอร์

รับค่าจากฟอร์ม

<%@ Language="VBScript" %>
<%
Dim name
name = Request.Form("name")
%>
<form method="post" action="greet.asp">
  ชื่อ: <input type="text" name="name">
  <input type="submit" value="ส่ง">
</form>
<% If name <> "" Then %>
  <p>ยินดีต้อนรับ <%= Server.HTMLEncode(name) %></p>
<% End If %>

`Request.Form` อ่านค่าจากฟอร์ม และ `Server.HTMLEncode` ป้องกันการแทรกโค้ด HTML หรือสคริปต์อันตรายเข้าไปในหน้า

เชื่อมต่อฐานข้อมูล

ระบบ ASP คลาสสิกมักใช้ ADO เชื่อมฐานข้อมูล แต่ควรใช้พารามิเตอร์แทนการต่อข้อความ SQL โดยตรงเพื่อป้องกัน SQL Injection

ข้อผิดพลาดที่มักพบ

ขั้นต่อไป

หากเป็นโปรเจกต์ใหม่ ควรพิจารณา ASP.NET Core ที่ได้รับการดูแลต่อเนื่อง ส่วนระบบเดิมที่ใช้ ASP อยู่ ควรย้ายค่อยเป็นค่อยไปและเพิ่มการป้องกันความปลอดภัยให้ครบถ้วน

สรุป

ASP รันโค้ดบนเซิร์ฟเวอร์ผ่าน IIS และผสมกับ HTML ได้โดยตรง จุดสำคัญคือการเข้ารหัสค่าที่แสดงผลและการใช้พารามิเตอร์กับฐานข้อมูลเพื่อความปลอดภัย