Make your own free website on Tripod.com
Click here to visit our sponsor
Free Advertising from Click2Net!

บทเรียนที่ 4 การรับข้อมูลจากผู้ใช้


หลังจากได้เล่นๆกันมาตั้ง 2 บทแล้ว ในบทเรียนนี้เริ่มเอาจริงแล้วนะครับ
ผู้ที่เป็นผู้ใช้ ASP มีวิธีหลักๆในการรับข้อมูลจากผู้ใช้อยู่ 4 วิธีหลักๆดังนี้ครับ
1. HTML Form
2. Query string
3. Cookies
4. Session
ซึ่งความจริงแล้วมีมากกว่า 4 วิธี แต่ที่นี้จะสอนเพียง 4 วิธีหลักๆก่อน


ข้อตกลงใหม่ [ /query.htm ] ต่อไปนี้ถ้าพบสัญลักษณ์คล้ายๆแบบนี้จะหมายถึง ให้ copy code ที่อยู่ใต้เครื่องหมายนี้
แล้ว paste ลงใน notepad จากนั้น save ไว้ใน root ของ server
โดยตั้งชื่อเป็น query.htm หรือถ้าเป็น [ /asp/query.asp ] ก็ให้ save
ไว้ใน Folder asp โดยตั้งชื่อเป็น query.asp เป็นต้น


1. HTML Form
ในด้านของ Form รับข้อมูลจากผู้ใช้ ก็ทำแบบธรรมดาไม่มีอะไรพิเศษเพิ่มเติมเข้ามา
ต่อไปนี้เป็นตัวอย่าง Form ที่จะส่งข้อมูลที่มีผู้ใช้
กรอกไปให้กับไฟล์ getform.asp เพื่อนำไปแสดงผลหรือไปใช้ต่อไป ในตัวอย่างนี้เรา
จะให้คุณทำแบบแยกส่วนก่อน คือส่วนแรกเป็นแบบฟอร์ม ส่วนที่สองเป็นไฟล์รับข้อมูล
ที่ชื่อ getform.asp ต่อไปเมื่อคุณชำนาญแล้วจะสามารถทำไฟล์เดียวให้มีสองส่วนนี้อยู่ด้วยกันได้

[ /input.htm ]

<HTML>
<HEAD><TITLE>รับข้อมูล</TITLE></HEAD>
<BODY>
<H2>ตัวอย่าง Form รับข้อมูล</H2>
<P>
กรุณากรอกข้อมูลในแบบฟอร์มต่อไปนี้:
<FORM METHOD="POST" ACTION="/asp/getform.asp">
<P>
First Name: <INPUT NAME="fname" SIZE="48">
<P>Last Name: <INPUT NAME="lname" SIZE="48">
<P>
Title: <INPUT NAME="title" TYPE=RADIO VALUE="mr">Mr.
<INPUT NAME="title" TYPE=RADIO VALUE="ms">Ms.
<P><INPUT TYPE=SUBMIT><INPUT TYPE=RESET>
</FORM>
</BODY>
</HTML>



ต่อไปนี้เป็นไฟล์ getform.asp ซึ่งจะทำหน้าที่รับข้อมูลจาก form ในไฟล์ input.htm
แล้วนำมาแสดงผลในรูปแบบต่างๆ

[ /asp/getform.asp ]

<%
'รับข้อมูลจากแบบฟอร์มแล้วนำมาสร้างเป็นตัวแปลเก็บไว้
FirstN = request.form("fname")
LastN = request.form("lname")
UTitle = request.form("title")
%>

<HTML>
<BODY>
<H3>ตัวอย่างการรับข้อมูลกลับนำมาใส่แบบฟอร์ม</H3>
<FORM METHOD="POST" ACTION="/asp/getform.asp">
First Name: <INPUT NAME="fname" value="<%=request.form("fname")%>" SIZE="48">
<P>Last Name: <INPUT NAME="lname" value="<%=request.form("lname")%>" SIZE="48">
<P>
<% if request.form("title") = "mr" then %>
Title: <INPUT NAME="title" TYPE=RADIO CHECKED VALUE="mr">Mr.
<INPUT NAME="title" TYPE=RADIO VALUE="ms">Ms.
<% else %>
Title: <INPUT NAME="title" TYPE=RADIO VALUE="mr">Mr.
<INPUT NAME="title" TYPE=RADIO CHECKED VALUE="ms">Ms.
<% end if %>
<P><INPUT TYPE=SUBMIT><INPUT TYPE=RESET>
</FORM>

<hr>
<H3>ตัวอย่างการรับข้อมูลแล้วแสดงผลในทันที</H3>
First Name = <%=request.form("fname")%><br>
Last Name = <%=request.form("lname")%><br>
Title = <%=request.form("title")%>
<hr>

<H3>ตัวอย่างการรับข้อมูลจากตัวแปรที่ได้ตั้งไว้ในส่วนบนของไฟล์</H3>
First Name = <%=FirstN%><br>
Last Name = <%=LastN%><br>
Title = <%=UTitle%>

</BODY>
</HTML>



การใช้งานให้คุณเรียกไฟล์ input.htm ก่อน จากนั้นกรอกข้อมูลและ submit




2. Query string

[ /query.htm ]


<HTML>
<BODY>

ตัวอย่างการใช้ query string<br>
<a href="/asp/getquery.asp?firstname=Suwat&lastname=Phungbang&gender=male"> click ลิงค์นี้เพื่อดูผล </a>

</BODY>
</HTML>



[ /asp/getquery.asp ]


<%
'รับข้อมูลจากแบบ Query String แล้วนำมาสร้างเป็นตัวแปลเก็บไว้
FirstN = request.querystring("firstname")
LastN = request.querystring("lastname")
UGender = request.querystring("gender")
%>

<HTML>
<BODY>

ตัวอย่างการใช้ query string<br>
<a href="/asp/getquery.asp?firstname=<%=request.querystring("firstname")%>&lastname=<%=request.querystring("lastname")%>&gender=<%=request.querystring("gender")%>"> click ลิงค์นี้เพื่อดูผล </a>


<H3>ตัวอย่างการรับข้อมูลแล้วแสดงผลในทันที</H3>
First Name = <%=request.querystring("firstname")%><br>
Last Name = <%=request.querystring("lastname")%><br>
Gender = <%=request.querystring("gender")%>
<hr>


<H3>ตัวอย่างการรับข้อมูลจากตัวแปรที่ได้ตั้งไว้ในส่วนบนของไฟล์</H3>
First Name = <%=FirstN%><br>
Last Name = <%=LastN%><br>
Gender = <%=UGender%>

</BODY>
</HTML>





3. Cookies


ก่อนการใช้ cookies เราก็มาสร้างไฟล์ที่ทำหน้าที่สร้าง Cookies กันก่อนดังนี้ครับ

[ /asp/makecookies.asp ]

<%
Response.Cookies ("mycookies") = "valueisThaiTOP"
Response.Cookies("mycookies").Expires = Date+365
' ชื่อของ cookies จะตั้งเป็นอะไรก็ได้ที่ไม่ขัดกฏของ VB และค่าของ cookies จะรับมาจากที่อื่นก็ได้เช่น
' Response.Cookies ("mycookies") = request.form("somename")
' หรือจะแทนด้วยตัวแปรก็ได้เช่น Response.Cookies ("mycookies") = date
%>

<html>
<body>
สร้าง cookies แล้วครับ
</body>
</html>



ไฟล์ด้านบนนี้จะทำหน้าที่สร้าง cookies ที่ชื่อ mycookies โดยมีค่าเป็น valueisThaiTOP
ซึ่ง cookies นี้จะอยู่ในเครื่องของผู้เรียกไฟล์นี้เป็นเวลา 1 ปี หมายความว่า ถ้าเรียก
cookies ที่ชื่อ mycookies ในภายหลัง ก็จะได้ค่าเป็น valueisThaiTOP สามารถเรียกใช้ได้
เป็นเวลา 1 ปีก่อนที่ cookies จะหมดอายุ แล้วถ้าต้องการรับค่า cookies จะต้องทำแบบนี้ครับ


[ /asp/showcookies.asp ]

<%
showcookies = request.Cookies("mycookies")
%>

<html>
<body>
ค่าของ cookies ที่ตั้งไว้คือ <%=showcookies%> หรือจะเรียกโดยไม่ผ่านตัวแปรก็ได้ดังนี้ครับ <br>
ค่าของ cookies ที่ตั้งไว้คือ <%=request.Cookies("mycookies")%>
</body>
</html>



เมื่อสร้างได้ก็ลบได้โดยทำดังนี้ครับ

[ /asp/clearcookies.asp ]

<%
Response.Cookies("mycookies").Expires = now
%>
<html>
<body>
ลบ cookies แล้วครับ
</body>
</html>


ถ้าคุณเรียกไฟล์นี้ แล้วไปเรียกไฟล์ showcookies.asp คุณจะไม่เห็นค่าของ cookies เนื่องจากถูกลบไปแล้ว
ถ้าต้องการแสดงค่าอีกให้เรียกไฟล์ makecookies.asp ก่อน 1 ครั้งแล้วจึงเรียก showcookies.asp
จะเห็นค่า cookies เป็น valueisThaiTOP รายละเอียดการใช้ที่สูงขึ้นอ่านได้จาก road map นะครับ


4. Session

session คือค่าตัวแปรที่จะสร้างขึ้นให้กับผู้ใช้หรือผู้เรียกไฟล์ แล้วอยู่ไปตลอดจนกว่า session จะหมดอายุ
(Time out) แนวทางการนำมาใช้ก็เช่น ถ้าผู้ใช้ยังไม่ได้อ่านไฟล์ใดที่เรากำหนด ก็ไม่สามารถไป อ่านไฟล์อื่นๆหรือ download
โปรแกรมที่เรากำหนดได้ หรือจะป้องกันการเรียกใช้ไฟล์โดยไม่ผ่านหน้าหลักของเว็บไซต์ หรือจะประยุกต์ใช้
อื่นๆ ก็ได้ตามแต่ความสามารถและโอกาศ ให้เข้าใจง่ายๆก็คือจำตัวแปรหรือค่าใดค่าหนึ่งหรือหลายๆค่าไว้
โดยสามารถเรียกค่านั้นมาใช้ได้ ซึ่งหลักการนี้ก็จะคล้ายๆกับการใช้ cookies

ในบทเรียนนี้จะยกตัวอย่างของการสร้าง session และการตรวจสอบ โดยมีเงื่อนไขว่า
ถ้าผู้ที่ต้องการ download ไฟล์ๆหนึ่งยังไม่อ่านข้อความหนึ่งจากเจ้าของ จะไม่อนุญาติให้
download ไฟล์นั้น ทำดังนี้ครับ


[ /asp/creatsession.asp ]

' สร้าง session ชื่อ candownload โดยมีค่าเท่ากับ yes
<% session("candownload") = "yes" %>
<html>
<body>
ถ้าสนใจ download อ่านข้อตกลงต่อไปนี้ก่อนครับ<br>
1. ถ้าพบข้อผิดพลาดกรุณาแจ้งเราที่ อีเมล์ someone@domain.com<br>
2. .......<br>
3. .......<br>
<br> ถ้าเห็นด้วยเลือกลิ้งค์นี้เพื่อ<a href="/asp/dl.asp">ไปหน้า download</a> ได้เลยครับ

</body>
</html>



[ /asp/dl.asp ]

<%
'ส่วนต่อไปนี้ตรวจสอบว่า ถ้า session ที่ชื่อว่า candownload ไม่เท่ากับ (<>) yes จะส่งกลับไปที่
'/asp/creatsession.asp เพื่อให้ไปอ่านข้อตกลงก่อน เพราะฉะนั้นถ้าใครเรียกไฟล์นี้โดยตรงโดยไม่
'ได้อ่านไฟล์ creatsession.asp ก่อน จะต้องถูกส่งกลับไปอ่าน creatsession.asp เสมอไป

if session("candownload") <> "yes" then
'ต่อไปนี้คือคำสั่งการย้ายผู้เรียกไฟล์ให้ไปยังไฟล์หรือ url ที่กำหนดในวงเล็บ
response.redirect("/asp/creatsession.asp")
end if
%>

<html>
<body>
คุณได้อ่านข้อตกลงแล้ว เลือกลิ้งค์เพื่อ dowload ไฟล์ได้เลยครับ <br>
<a href="somefile.zip">download somefile</a>

</body>
</html>