Development
www.wbi.msu.ac.th
ผศ.อนิรุทธ์ โชติถนอม
Anirut.c@msu.ac.th
แผนการเรี ยนรายสัปดาห์
1. หลักการเบื้องต้นเกี่ยวกับ web application,เครื่ องมือพัฒนา,การ
ติดตั้ง web server หลักการเขียนคาสัง่ HTML
2. ภาษา VB Script
•
•
•
•
•
Function พื้นฐาน
Statement if, select, loop
สัญลักษณ์ ตัวเชื่อม
หลักการทาเมนู
การสร้าง Function และ Subroutine
3. หลักการสร้างการโต้ตอบกับผูใ้ ช้งาน
4. การติดต่อฐานข้อมูล Insert , select
5. การติดต่อฐานข้อมูล delete , Update
แผนการเรี ยนรายสัปดาห์
6. การจดจาระหว่าง Client กับ Server
7. Server Object
8. สอบกลางภาค
9-10. แนวทางการพัฒนาเว็บ ตัวอย่างระบบกระดานข่าว
11-12. ตัวอย่างระบบขายสิ นค้า การ Upload file
13-15 PHP Programming
สัปดาห์ที่ 1
• หลักการเบื้องต้นเกี่ยวกับ web application
• เครื่ องมือพัฒนา
• การติดตั้ง web server
Internet & Web
• Internet
• TCP/IP : Transmission Control Protocol/Internet Protocol
IP Address
หมายเลขเครื่ องสาหรับอ้างอิงในระบบเครื อข่าย
ประกอบด้วยเลข 4 ชุด
ชุดละ 256 ค่า
โดยคัน่ ด้วยเครื่ องหมายจุด
มีค่า 0.0.0.0 จนถึง 255.255.255.255
ข้อเสี ย จาได้ยาก
Domain Name System : DNS
ระบบการกาหนดชื่อที่เป็ นตัวอักษรเพื่อใช้เรี ยกแทน IP
Address
เช่น
202.28.32.27 แทนด้วย www.wbi.msu.ac.th
World Wide Web
บริ การอย่างหนึ่งในระบบ Internet สามารถส่ งข้อมูลหรื อ
สื่ อได้หลายรู ปแบบ (Multimedia)
• HTTP://
• HTTPS://
Hypertext , Hyper Link
คือข้อความที่สามารถเชื่อมโยงไปยังข้อมูลอื่นที่อยูใ่ น www
ได้
Server
เครื่ องคอมพิวเตอร์สาหรับให้บริ การต่างๆ
Web Server
เครื่ องให้บริ การ Webpage แก่ Client
Client
เครื่ องที่ขอดู Webpage จาก web server
web site
คือกลุ่มข้อมูลที่มีการนาเสนอผ่าน www ของแต่ละหน่วยงาน
ที่เก็บไว้ที่ Web server
Homepage
คือหน้าแรกของ web site
Webpage
คือหน้าต่างๆที่อยูใ่ น Web site รวมถึง homepage
ด้วย
Upload
คือการคัดลอกข้อมูลจาก Client ไปยัง Server
Download
คือการคัดลอกข้อมูลจาก Server มายัง Client
Static Web page
• Static Web page
- มีรูปแบบและข้อมูลแน่นอนในการแสดงผล
- webpage ทั้งหมดจะถูกสร้างด้วย Hyper text markup
language : HTML
- นามสกุลของไฟล์ เป็ น .HTML , .HTM
Static web
4.
Browser
1. HTML Request
HTML
IIS
`
3. HTML Rsponse
2. Read HTML File
Client
Server
<Html>
<Html>
…..
<Html>
…..
…..
…..
…..
</Html>
…..
</Html>
</Html>
Quick HTHL Concept
• เราไม่จาเป็ นต้องเขียนคาสัง่ HTML ครบตามรู ปแบบก็ได้
Full Version
<HTML>
<HEAD>
<TITLE>This is my
page</TITLE>
</HEAD>
<BODY>
Hello world!
</BODY>
</HTML>
Shot Version
Hello world!
การจัดการส่ วน Client
• Installation Software
– IE
การจัดการส่ วน Web Server
• Data Base (Access หรื ออื่นๆ)
• IIS (โปรแกรม Web Server)
เครื่ องมือพัฒนา ASP Web Application
• Software Installation
– HTML Editor
• Html-kit
– Manual or Reference Book
– Graphic editor
• Photoshop
– Browser & Plugins
• IE
– Database
• MS Access
การติดตั้ง Web Server
• หาโปรแกรม Web Server จากไหน
• ติดตั้ง Web Server อย่างไร
• Config ค่าอย่างไร
การตรวจสอบ IIS ในเครื่ อง
Control panel > Administrator Tools
การติดตั้ง IIS
Control panel > Add Remove Program
2
1
3
การกาหนดค่าใน IIS
property
Default Web sites
กาหนด Folder เก็บเว็บ
Virtual Directory / Allied
IP Address
Default ip
http://localhost
http://127.0.0.1
ใช้เรี ยกภายในเคื่องตนเอง
Static IP
Command prompt + Ipconfig
IP
Assigned IP to Web Server
Default Document
• Default Document
default.asp , .HTM, .HTML
Index.asp, .HTM, .HTML
การเรี ยกเว็บเพจในเครื่ องที่พฒั นาเว็บ
http://localhost/ชื่อไฟล์
http://127.0.0.1/ชื่อไฟล์
การเรี ยกเว็บจากเครื่ องอื่น
1. ให้ปิด Windows Firewall
2. เรี ยกตาม IP ของเครื่ อง Server นั้นแล้วตามด้วยชื่อ Path และ ชื่อไฟล์
เช่น
• http://10.114.0.10/default.html
• http://10.99.5.3/image/x.html
ข้อสังเกตุ
• หากเรี ยกเว็บจากเครื่ องอื่นไม่ได้ให้ลองปิ ด Firewall ของเครื่ อง
Server ก่อน โดยไปที่ control panel แล้วหา Firewall
จากนั้นเลือก turn off windows firewall
ปัญหาในการเรี ยกใช้งาน Web Server
• สิ ทธิในการเข้าถึง folder และไฟล์ (เขียนข้อมูลไม่ได้)
การกาหนดสิ ทธิการเข้าถึง folder
เมื่อแก้ไขโปรแกรมแล้ว ผลการทางานไม่เปลี่ยนตาม
Hypertext markup language
(HTML)
W3C
• W3C (World Wide Web Consortium) เป็ น
องค์กรสากลที่ทางานด้านการพัฒนาเทคโนโลยี WWW ก่อตั้งเมื่อ ปี
1994 นาโดย นาย Tim Berners- Lee ได้รับความร่ วมมือ
จากสามสถาบันหลัก คือ MIT/CSAIL สหรัฐอเมริ กา ERCIM
ฝรั่งเศส และ Keio University ประเทศญี่ปุ่น ปัจจุบนั มีสมาชิก
อยูท่ วั่ โลก ในการร่ วมกันพัฒนามาตรฐานเว็บไซต์เพื่อรับรองการ
เจริ ญเติบโตในอนาคต (http://www.w3.org/)
โครงสร้างภาษา
<HTML>
<HEAD>
<TITLE>This is my page</TITLE>
</HEAD>
<BODY>
Hello world!
</BODY>
</HTML>
รู ปแบบ Tag
Tag เดี่ยว
<Tag_name Attribute1 Attribute2 …AttributeN>
Tag คู่
<Tag_name> ………… </Tag_name>
HTML Tag
Tag's name
Value
<img src = "abc.jpg" width= 10>
Open tag
Attribute
Close Tag
ตัวอย่าง Tag Attribute
<img src="abc.jpg" border="5">
img
คือ Tag สาหรับแสดงภาพ
src
คือ Attribute กาหนดชื่อภาพ
border คือ Attribute กาหนดขนาดของกรอบ
Quick HTHL Concept
• ไม่จาเป็ นต้องเขียนคาสัง่ HTML ครบตามรู ปแบบก็ได้
Full Version
<HTML>
<HEAD>
<TITLE>This is my
page</TITLE>
</HEAD>
<BODY>
Hello world!
</BODY>
</HTML>
Shot Version
Hello world!
HTML Tools
• HTML เป็ น Text file ดังนั้นจึงสามารถพัฒนาด้วยText
Editor อะไรก็ได้เช่น
Notepad
Edit plush
Dreamweaver
HTML Kit
การ set ภาษาไทยใน HTML Kit
1
3
5
4
2
6
ตัวอย่าง HTML Tag
•
•
•
•
<img>
<table>
<br>
<hr>
แสดงภาพ
แสดงตาราง
ขึ้นบรรทัดใหม่
ขีดเส้น
• <a>
Link
• <input> เติมค่า
• <form> กาหนดขอบเขตการเติมค่า
Tag BR และ HR
• BR
ใช้ข้ ึนบันทัดใหม่ 1 บันทัด
• HR
ใช้ขีดเส้นกั้นหน้า
การใช้งาน ให้พิมพ์ tag ในตาแหน่งที่ตอ้ งการให้เกิดการทางานขึ้น
เช่น
Line 1<br>Line 2<br>Line 3
Tag Table
• Table
ใช้สร้างตาราง ใช้ร่วมกับ TR และ TD
TR ใช้กาหนดแถว ภายใน TR จะมี TD กาหนดไว้แบ่งคอลัม
<table>
<tr><td>data1</td><td>data1</td></tr>
<tr><td>data3</td><td>data4</td></tr>
</table>
data1 data2
data3 data4
Table ต่อ
• TD
Colspan ใช้ในการรวม Cell ด้าน Column
<td Colspan=2> เป็ นการรวม 2 column เป็ น 1 column
<table>
<tr><td Colspan=2 >data1</td></tr>
<tr><td>data3</td><td>data4</td></tr>
</table>
data1
data3 data4
Table ต่อ
• การกาหนดสี ให้ตาราง
การกาหนดสี ทาได้ในระดับตาราง ระดับแถว หรื อระดับ column
ระดับตาราง <table bgcolor="ค่าสี ">
ระดับแถว <tr bgcolor="ค่าสี " >
ระดับ column <td bgcolor="ค่าสี " >
ค่าสี
• ระบบกาหนดสี เป็ นแบบ RGB อย่างละ 1 byte ด้วยเลขฐาน 16
เช่น
ค่าสี น้ าเงิน B
FF00DD
ค่าสี เขียว G
ค่าสี แดง R
ค่าต่าสุ ดคือ 00 หมายถึงไม่มีความเข้มสี เลย
ค่าสู งสุ ดคือ FF หมายถึงความเข้มสี ตม็ ที่
Tag B, I, U
• B ทาให้ตวั อักษรหนา
• I ทาให้ตวั อักษรเอียง
• U ทาให้ตวั อักษรขีดเส้นไต้
การใช้ตอ้ งกาหนดขอบเขตของผลการทางานด้วย โดยใช้ </ เพื่อจบ tag
เช่น
xxx<B>Test</B>x<u>x</u>x
ผล
xxxTestxxx
Tag Center
• Center
ใช้ในการกาหนดข้อมูลให้อยูต่ รงกลาง เช่นกลางจอ กลางตาราง
การกาหนดข้อมูลให้อยูก่ ลางจอให้ใช้ <center> และ </center>
ครอบไว้
การกาหนดข้อมูลกลางตารางให้กาหนดไว้ที่ Attribute align ของ
tag table หรื อ tr หรื อ td โดยกาหนดค่าเป็ น center
<table align="center">
<tr align="center">
Tag H
• H1,H2,H3,H4,H5
กาหนดขนาดตัวอักษรเป็ นหัวข้อ H1 มีขนาดใหญ่สุด
การใช้งานต้องกาหนดขอบเขตการทางานไว้ดว้ ย
เช่น
<h2>xxx</h2>yyy
ผล
xxx
yyy
Tag Font
• Font
ใช้กาหนดลักษณะตัวอักษร
Face กาหนดชื่อ font ที่จะใช้
Size กาหนดขนาด
เช่น
<font face="Angsana new" size=50> ทดสอบ </font>
Tag img
• Img
ใช้แสดงภาพ .jpg, .png, .gif, .bmp ไม่สามารถแสดงภาพที่
เป็ น flash ได้
attribute
Src ใช้กาหนดชื่อไฟล์ภาพที่จะแสดง
Height ใช้กาหนดความสูง
Width ใช้กาหนดความกว้าง
Alt ใช้กาหนดข้อความแสดงบนภาพ
Link
• Tag ที่ใช้ทา Link ไปยังข้อมูลอื่น
• A
• Map
• Area
Tag A
• A
ใช้ทา Link เชื่อมไปยังข้อมูลต่างๆ
Href กาหนดที่หมาย ถ้าเป็ น web อื่นให้ใส่ http:// ด้วย เช่น
href=http://www.google.com
Target กาหนดหน้าจอที่จะเปิ ดหากไม่กาหนดจะเปิ ดจอเดิม
_blank หน้าจอใหม่
Title กาหนดตัวอักษรบน Mouse เมื่อสัมผัส
Tag map
ใช้กาหนดจุดเพื่อ link ไปยังข้อมูลอื่น โดยกาหนดจุดเป็ นรู ปทรงต่างๆ
<map name="map_panda">
<area alt="yyy" shape="circle" coords="200, 180, 170" href="http://www.msu.ac.th" />
<area alt="xxx" shape="rect" coords="0, 0, 100, 100" href="http://www.wbi.msu.ac.th" />
</map>
<img src="panda.jpg" usemap="#map_panda" height="500" width="500" />
Tag area
• <area shape="circle" coords="200, 200, 170"
href="http://www.bamboolabcode.com" />
• <area shape="rect" coords="0, 0, 20, 50"
href="http://www.bamboolabcode.com" />
ข้อสังเกตุ Attribute
• Alt,title
•
•
•
•
•
Name,id
Align
Valign
Width
Height
ใช้กาหนดข้อความเมื่อเลื่อน mouse ไป
tag นั้น
ใช้กาหนดชื่อให้ tag
ใช้จดั ตาแหน่งชิดซ้าย ขาว หรื อกลาง
ใช้จดั ตาแหน่งแนวตั้ง บน ล่าง กลาง
กาหนดความกว้าง
กาหนดความสูง
แบบฝึ กหัด
• ให้ติดตั้ง Web Server
• เขียนภาษา HTML ทดลองใช้ Tag ทุก tag ให้เข้าใจ
• เรี ยกดูเว็บที่สร้างผ่านทางเครื่ องอื่น
สัปดาห์ที่ 2
Web Application
VB-Script
Web Application
Web Application เป็ นโปรแกรมสร้างไว้ที่ Web Server
การประมวลผลจะเกิดขึ้นที่ Web Server หรื อ Client ก็ได้
ได้ ขึ้นอยูก่ บั รู ปแบบภาษาที่เขียน
API
Application Program Interface
เทคโนโลยีในการประมวลผลภาษาที่ฝั่ง Server
API มีหลายเทคโนโลยี เช่น
ASP
PHP
CGI
.NET
Web Server 1 เครื่ องอาจติดตั้ง API ไว้หลายตัว
ข้อดี Web Application
• ลดปัญหาการเขียน Application หลาย Platform
• เพิ่มความสามารถของ Web ในการให้บริ การที่ยดื หยุน่ มากขึ้น
• เพื่อให้ Client สามารถติดต่อกับ Service อื่นๆ ของ Server ได้
•
•
•
•
•
เข้าถึงได้จากทุกที่
แก้ไขที่จุดเดียว
ลดการแจกจ่ายและติดตั้งโปรแกรมที่ลูกข่าย
เครื่ อง Client ไม่จาเป็ นต้องมีความสามารถสูงในการประมวลผล
สามารถ Share ข้อมูลร่ วมกันของผูใ้ ช้งานได้ง่ายและรวดเร็ ว
ข้อเสี ย
• มีความเสี่ ยงในการโจมตีจาก hacker สูงกว่าโปรแกรมธรรมดา
ภาษาทีใ่ ช้ ในการสร้ าง Web Application
HTML +
– JAVA Script
– VB Script
– PHP Script
– J Script
– Perl Script
– C#
ASP / VB Script
•
•
•
•
•
พัฒนาโดย บริ ษทั Microsoft
ทางานบน Windows (แถมมากับ Windows)
รองรับภาษา VB Script และ J Script
การแปลโปรแกรมเป็ นแบบ Interpreter แปลทุกครั้งเมื่อเรี ยกทางาน
ลักษณะภาษามี 2 แบบคือ
1. Server Site Script
โปรแกรมจะถูกแปลที่ฝั่ง Server ทุกครั้งที่ Client เรี ยกข้อมูล
2. Client Site Script
โปรแกรมจะถูกแปลด้วย Web browser ( browser บางตัวไม่รองรับ VB
Script)
Static Web
4.
Browser
1. HTML Request
HTML
IIS
`
3. HTML Rsponse
2. Read HTML File
<Html>
<Html>
…..
<Html>
…..
…..
…..
…..
</Html>
…..
</Html>
</Html>
Client
Server
8.
Browser
1. HTML Request
HTML
6. Send to IIS
<Html>
…..
…..
</Html>
IIS
`
7. HTML Rsponse
Dynamic Web
5. Create HTML
2. ASP Request
<Script>
…..
…..
</Script>
Client
ASP
4. Read Data
3. Read ASP File
Server
การเขียน Web Application ด้วย ASP เป็ นการเขียนโปรแกรม
ไว้ใน text file นามสกุล .ASP เก็บไว้ที่ Server
อาจเก็บเป็ น .HTM ก็ได้หากไม่มีคาสัง่ ที่เป็ นภาษา ASP อยูใ่ นนั้น
รู ปแบบการเขียน VB Script ฝั่ง Server
รู ปแบบการเขียน Script ทีท่ างานในฝั่ง Server ทาได้ 2 แบบ
1. เขียน Script ภายในใช้สัญลักษณ์ <% และ %>
2. เขียนโดยใช้ Tag Script
<SCRIPT RUNAT=SERVER LANGUAGE="VBscript">
และ
</script>
• หมายเหตุ
– ในการเขียนโปรแกรมอาจใช้ผสมกันได้ท้ งั 2 แบบ
รู ปแบบการเขียน VB Script ที่ ทางานฝั่ง Client
รูปแบบการเขียน Script ที่ ทางานฝั่ง Client
ใช้ Tag
<script language = "VBscript" >
และ
</script>
• หมายเหตุ
– Script ที่ฝั่ง Client จะทาการประมวลผลที่ฝั่ง Client
การเขียน Script
เขียนผสมกันระหว่าง VB กับ HTML
<h1>วันที่ <%=now()%></h1>
<%
A=10
Do while a<>0
หรื อ
%>
Response.write a& " <br> "
<%=a%><br>
<%
loop
%>
การทางานของ Script
•
•
•
•
ทางานจากบนลงล่าง ไม่มีการรอ Input
เริ่ มทางานใหม่เมื่อมีการโต้ตอบ เช่นการ Click Link,Click ปุ่ ม
ไม่จดจาสถานะตัวแปร
หยุดการติดต่อกันระหว่าง Client กับ Server เมื่อรับข้อมูล
เรี ยบร้อยแล้ว
Comment
• สาหรับ VB-Script
REM
หรื อ
'
• สาหรับ HTML
<!- -->
ตัวแปร
• DIM
ใช้ประกาศตัวแปร (ไม่ใช้กไ็ ด้)
Dim x,y,z
• Array ใช้กาหนดตัวแปรแบบ Array
Dim x(50)
Dim y
y = Array(1,5,2,3,6,4)
การสร้างตัวแปร
• กาหนดชื่อตัวแปรแล้วให้ค่าได้เลย
Abc=10
X="มมส."
Dim xxx
ตัวแปรอาจถูกสร้างขึ้นตอนใช้งานก็ได้
เช่น x =y+z โดยไม่ตอ้ งประกาศ x,y,z ก่อนหน้านี้
• หากไม่กาหนดค่าไว้ตวั แปรนั้นจะมีค่าเป็ น 0
การแสดงผลข้อมูล
• ใช้ Object response และ method write
เช่น
Response.write "msu"
หากมีหลายข้อมูลให้เชื่อมด้วย &
เช่น
Responsewrite "วันนี้คือ"&date()&time()
การแสดงผลข้อมูล
• แสดงค่าข้อมูลจาก VB แทรกใน HTML
ในตาแหน่งของภาษา HTML สามารถแทรกค่าจาก VB เข้าไปโดยพิมพ์
<%=ค่าที่จะแทรก%>
เช่น
<h<%=x%>> เป็ นการแทรกค่าตัวแปร x เข้าไปใน tag h ถ้า x เป็ น 1 ค่าทั้งหมดเมื่อแสดงผลจะเป็ น
<h1>
• แสดงข้อมูลใน Server site Script
<%
Response.write "ค่าตัวแปร Data คือ"& Data
%>
• แสดงข้อมูลใน Client side Script
<script language =vbscript>
Document.write "ค่าตัวแปร Data คือ"& Data
</script>
ค่าคงที่
• User Define
– CONST
– CONST
x = 50
y = "MSU"
• Standard Constant
– Color
– Date Time
– File
– Char char(13)
– Var Type
เครื่ องหมาย
+
*
/
\
^
&
<
>
=
>=
<=
<>
Not
is
การกาหนดเงื่อนไข
if เงื่อนไข
Then
การทางาน
….
…..
End if
X=10
If x>8 then
response.write x
End if
การกาหนดเงื่อนไข
if เงื่อนไข
การทางาน
….
…..
Else
การทางาน
….
…..
End if
Then
X=10
If x>8 then
response.write x
Else
%>
<h1>ค่าไม่มากกว่า 8 </h1>
<%
End if
ตัวอย่างโปรแกรมตัดเกรด s/u
Score=50
If score > 50 then
response.write “Grade = S”
Else
response.write “Grade = U”
End if
การกาหนดเงื่อนไข
• Select case ตัวแปร
Case ค่าที่ 1 work1
Case ค่าที่ 2 work2
Case ค่าที่ 3 , ค่าที่ 4 work3
Case else work4
End select
ตัวอย่าง Case
X=10
Y=0
Select case x
ถ้า x เป็ น 1 ให้ y=y+10
Case 1 y =y+10
Case 3 response.write "MSU"
Case 5,8 y = x
Case else y = 20 *3
End select
การทาซ้ า For
For ตัวแปร = ค่าเริ่ มต้น to ค่าสิ้ นสุ ด
การทางาน
...
Next
เช่น
For x=1 to 10
response.write x&”<br>”
next
Do While เงื่อนไข
การทางาน
....
Loop
เช่น
Do while x<10
response.write x
x=x+1
Loop
Standard Function
• Math
– Sin
– Cos
– tan
Standard Function
• String
–
–
–
–
–
–
–
–
–
Left
Right
Ltrim
Rtrim
Len
Ucase
Lcase
StrComp
Cint
ตัดตัวอักษรทางซ้ายมา
ตัดตัวอักษรทางขวามา
ตัดช่องว่างทางซ้ายออก
ตัดช่องว่างทางขวาออก
นับความยาวอักษร
ปรับเป็ นตัวพิมพ์ใหญ่
ปรับเป็ นตัวพิมพ์เล็ก
เทียบอักษรว่าเหมือนกัน
เปลี่ยนตัวหนังสื อให้เป็ นตัวเลข
Standard Function
• Date Time
– Date
วันที่ปัจจุบนั
– Now
วันที่และเวลาปัจจุบนั
– Day , Month , Year
วัน เดือน ปี จากวันที่ตอ้ งการ
– Time
เวลาปัจจุบนั
การสร้าง Subroutine
Sub(parameter1,parameter2,….)
การทางาน
.....
.....
End sub
เช่น
Sub test(x,y)
response.write x&y
End sub
การเรี ยก Subroutine
• เรี ยกชื่อ Sub พร้อม parameter
• หาก Sub นั้นมี parameter มากกว่า 1 ตัวให้ใช้คาว่า call
นาหน้าชื่อ sub
เช่น
call test("xxx",5)
การสร้าง Function
สัปดาห์ที่ 3
หลักการสร้างการโต้ตอบกับผูใ้ ช้งาน
แนวทางการสร้างการโต้ตอบ
เครื่ องมือการโต้ตอบกับผูใ้ ช้งาน
1. Tag <a>
2. form
3. Even ของ TAG
Tag A
• A
ใช้ทา Link เชื่อมไปยังข้อมูลต่างๆ
Href กาหนดที่หมาย ถ้าเป็ น web อื่นให้ใส่ http:// ด้วย เช่น
href=http://www.google.com
ถ้าเป็ นไฟล์ในเครื่ องให้ใส่ ชื่อไฟล์ ไม่ตอ้ งใส่ http
ถ้าเป็ นไฟล์ปัจจุบนั ที่กาลังเปิ ด ให้ใส่ ? ไม่ตอ้ งใส่ ชื่อไฟล์
Target กาหนดหน้าจอที่จะเปิ ดหากไม่กาหนดจะเปิ ดจอเดิม _blank หน้าจอ
ใหม่
Title กาหนดตัวอักษรบน Mouse เมื่อสัมผัส
Tag <a>
• Tag <a> สามารถส่ ง Parameter ไปให้กบั ไฟล์ปลายทาง
เพื่อประมวลผลได้
วิธีการส่ ง จะทาได้โดย กาหนด Parameter หลังเครื่ องหมาย ? ที่อยู่
ท้ายชื่อไฟล์ กาหนดชื่อของ parameter และให้ค่าด้วย
เครื่ องหมาย = แล้วตามด้วยค่า เช่น
<a href="abc.asp?menu=10">
กรณี มี Parameter หลายตัวให้ใช้เครื่ องหมาย & ขั้นไว้ เช่น
<a href="abc.asp?menu=10&name=abc">
การสร้าง Link
• <A>
• <a href="URL" >
• URL
– Filename?parameter1=value1&parameter2=value2
?
&
http://www.a.com/x.asp?menu=1&data=abc
หมายเหตุ
• การส่ ง parameter ด้วย tag <a> Server จะมองค่าของ
ข้อมูลเป็ น Text ทั้งหมด ดังนั้นถ้าส่ งค่าคะแนนไปกับ
parameter ค่าของคะแนนจะเป็ นตัวหนังสื อ เช่น
<a href="x.asp?score=10">
Score จะมีค่าเป็ นตัวหนังสื อ "10" ดังนั้นเวลานาไปเทียบค่ากับ
ข้อมูลที่เป็ นตัวเลข จะต้องแปลงให้เป็ นค่าตัวเลขก่อนโดยใช้
Function Cint เช่น
if Cint(request("score"))=5 then
......
Tag map
ใช้กาหนดจุดเพื่อ link ไปยังข้อมูลอื่น โดยกาหนดจุดเป็ นรู ปทรงต่างๆ
<map name="map_panda">
<area alt="yyy" shape="circle" coords="200, 180, 170" href="http://www.msu.ac.th" />
<area alt="xxx" shape="rect" coords="0,0,100,100" href="http://www.wbi.msu.ac.th" />
</map>
<img src="panda.jpg" usemap="#map_panda" height="500" width="500" />
0,0
200,180
panda.jpg
100,100
300,300
Tag area
• <area shape="circle" coords="200, 200, 170"
href="http://www.bamboolabcode.com" />
• <area shape="rect" coords="0, 0, 20, 50"
href="http://www.bamboolabcode.com" />
การสร้าง Form
<form>
<input type=....>
<input type=....>
......
<input type=submit>
</form>
<Form><input…></Form>
Form Attribute
Method เป็ นการกาหนดวิธีการส่ งข้ อมูล มีค่า เป็ น
post ไม่ จากัดความยาวในการส่ ง
get ส่ งข้ อมูลได้ ไม่ เกิน 1024 ตัวอักษร
ถ้ าไม่ กาหนดจะมีค่าเป็ น Get
ตัวอย่ าง <form method=post>
Action เป็ นการกาหนดข้ อมูลใน Form ให้ ส่งไปยังเป้าหมายที่
ต้ องการ ( ไฟล์ที่จะรับค่ า )
ถ้ าไม่ กาหนดจะหมายถึงส่ งมาไฟล์ที่ form นั้นอยู่
ตัวอย่ าง <form action="abc.asp">
Form.asp
ส่ งค่าด้วย form
การส่ งค่าด้วย form ทาได้ 2 แบบ คือ
1. ส่ งจาก tag <input>,<select>,<textarea>
2. ส่ งจาก Attribute action ของ form เช่น
<form action="abc.com/test.asp?menu=10">
การส่ งแบบนี้จะใช้แทนการซ่อนข้อมูลไปกับ form ด้วย tag
<input type="hidden">
รูปแบบการเติมค่ า
•
•
•
•
•
•
•
•
•
Text Box
Password Box
Text Area
Checkbox
Radio Buttons
Pop-up Menu
Scrolling List
Hidden Field
Submit Button
Subtag <input>
Input Attribute
type เป็ นการกาหนดชนิดการรับค่ า
name เป็ นการกาหนดชื่อให้ กบั ข้ อมูลแต่ ละ Input ทีส่ ่ งไป
value เป็ นการกาหนดค่ าให้ กบั Input ไว้ ล่วงหน้ า
Sample
<input type=text name=username value='xxx'>
Text box
ใช้ ในการเติมข้ อมูลทีเ่ ป็ นตัวอักษร หรือตัวเลข
<INPUT
TYPE ="text"
NAME ="myText"
SIZE ="30"
MAXLENGTH="40"
VALUE ="default value">
Password Box
ใช้ ในการเติมข้ อมูลทีเ่ ป็ นตัวอักษร หรือตัวเลข โดยผู้ใช้ มองไม่ เห็นค่ าที่เติม
<INPUT
TYPE ="Password"
NAME ="mySecret"
SIZE ="30"
MAXLENGTH="40"
VALUE="default value">
text area
ใช้ ในการเติมข้ อมูลทีเ่ ป็ นตัวอักษร หรือตัวเลขทีม่ หี ลายบันทัด
<TEXTAREA
NAME ="myText"
ROWS =5
COLS =40>
Default Text
</TEXTAREA>
check box
ใช้ รับค่ าแบบเลือกตอบ โดยเลือกได้ หลายค่ า
<INPUT
TYPE="Checkbox"
NAME="myCheck"
CHECKED
VALUE="box1">
check box
<input type="checkbox" name=box value="1">
<input type="checkbox" name=box value="2">
<input type="checkbox" name=box value="3">
ค่ าจาก check box
ค่ าทั้งหมด
request("check box name")
เช่ น
request("box")
ค่ าจาก check box
ค่ าตามลาดับ
request("check box Name")(ลาดับ)
เช่ น
request("box")(1)
Radio Buttons
ใช้ รับค่ าแบบเลือกตอบ โดยเลือกได้ ค่าเดียว
<INPUT
TYPE="radio"
NAME="myButtons"
CHECKED
VALUE="Dog">
<INPUT
TYPE="radio"
NAME="myButtons"
VALUE="Cat">
Select
ใช้ทารายการแบบเลือกตอบ
<SELECT NAME="myPopup">
<OPTION VALUE="1">DOG
<OPTION VALUE="2" SELECTED>CAT
<OPTION VALUE="3">RAT
</SELECT>
Scrolling List
ใช้ทารายการแบบเลือกตอบ
<SELECT MULTIPLE SIZE=3 NAME="myList">
<OPTION VALUE="1">first
<OPTION VALUE="2" SELECTED>second
<OPTION VALUE="3">third
<OPTION VALUE="4">fourth
</SELECT>
Hidden Field
ใช้ ซ่อนข้ อมูลไปกับ form
<INPUT
TYPE
="Hidden"
NAME
="myInvisible"
VALUE ="you can't see this!">
Submit
ใช้ ส่งข้ อมูลใน form ไป Server
<Input Type="submit" value ="OK">
จานวน Item หรือค่ าที่ส่งมา
นับจานวนค่ าทีส่ ่ งมา
Count Method
Request ("check box Name").Count
Sample
request("box").count
QueryString Collection
x.htm?car_id=288&vat=100
QueryString
Using Request Object
ค่ าทั้งหมด
Request.QueryString
ค่ าบางตัว
- Request("x")
- Request(2)
ลาดับทีส่ ่ งมา
จานวน QueryString
Request.QueryString.Count
แบบฝึ กหัด
• สร้าง form รับค่าแบบต่างๆดังนี้
–
–
–
–
–
–
–
–
–
Text Box
Password Box
Text Area
Checkbox
Radio Buttons
Pop-up Menu
Scrolling List
Hidden Field
Submit Button
• แสดงค่ าทีร่ ับออกมาทั้งหมด
• สร้ างเมนูโดยใช้ tag a เพือ่ link ไปยังเว็บไซต์ Google พร้ อมทั้งส่ งคาค้ นไปด้ วย
สัปดาห์ที่ 4
การติดต่อฐานข้อมูล
ASP & DB
• สร้างฐานข้อมูลด้วยโปรแกรมจัดการฐานข้อมูล
• เชื่อมโปรแกรมกับฐานข้อมูล
• เรี ยกใช้ฐานข้อมูลผ่านคาสัง่ SQL
สร้างฐานข้อมูลด้วย MS Access
• สร้างตาราง
• กาหนดความสัมพันธ์ตาราง
สร้างฐานข้อมูล
สร้างความสัมพันธ์
การเขียน code เชื่อมต่อฐานข้อมูล
• ใช้ DSN
• ไม่ใช้ DSN
ใช้ DSN
• สร้าง DSN ใน ODBC
• สร้าง Object ติดต่อฐานข้อมูล
Set MyConn = Server.CreateObject("ADODB.Connection")
• เปิ ดฐานข้อมูล
MyConn.open "DB"
• ใช้งานฐานข้อมูลด้วยคาสัง่ SQL
ไม่ใช้ DSN
• สร้าง Object ติดต่อฐานข้อมูล
Set MyConn = Server.CreateObject("ADODB.Connection")
• เปิ ดฐานข้อมูล
MyConn.Open "Driver={Microsoft Access Driver
(*.mdb)}; DBQ=" & Server.MapPath("sample.mdb")
• ใช้งานฐานข้อมูลด้วยคาสัง่ SQL
การใช้คาสัง่ SQL กับฐานข้อมูล
• สร้าง Record Set โดยให้มีค่าจากการกาหนดคาสัง่ SQL โดย
Object ที่เชื่อมต่อฐานข้อมูล ผลที่ได้จากคาสัง่ sql จะเกิดขึ้นที่
Record set
set rs = MyConn.execute(sql_command)
Record set
Database Object
ข้อควรสังเกตุในการใช้ฐานข้อมูล
• ไฟล์ .mdb ไม่สามารถเขียนข้อมูลลงได้ เนื่องจากไม่ได้กาหนดสิ ทธิ์
ให้ user iusr เขียนหรื อแก้ไขข้อมูลได้ ให้แก้ไขโดยการกาหนด
permision ไฟล์ให้ iusr เขียนได้
• ฐานข้อมูลที่ใช้ไม่จาเป็ นต้องเป็ น MS Access ก็ได้
SQL Command
•
•
•
•
Select
Insert
update
Delete
Insert
• Insert into table values(value1,2,3,....)
• Insert into table (field1,2,3,...)
values(value1,2,"x",....)
Insert into user values('x',10)
Insert into user (name,age) values('x',10)
เทคนิค
ให้กาหนดคาสัง่ sql ไว้ในตัวแปรก่อนเพื่อความสะดวกในการใช้งาน
Text_sql="select * from data"
set rs = MyConn.execute(Text_sql)
หลักการ
• แสดง form ป้ อนข้อมูล
• ตรวจสอบว่ามีซ้ าข้อมูลเดิมหรื อไม่โดยการอ่านข้อมูลจากฐานข้อมูลตาม
Primary Key
• หากไม่ซ้ าเพิ่มข้อมูลจาก form ลงในฐานข้อมูล
เทคนิคการเขียน SQL string
เขียนให้ถกู ตามรู ปแบบ sql
• Sql="select * from x where data='x' "
•
•
•
•
ลบ
Sql="select * from x where data='' "
เติม ""
Sql="select * from x where data='""' "
Sql="select * from x where data='"&&"' "
เติม &&
Sql="select * from x where
data='"&request("form_data")&"' "
เติม request("form_data")
Code Insert
<form>
<input type=text name=name_in>
<input type=submit>
<form>
<%
เครื่ องหมาย '
sql="insert into db (name) values(' "&request("name_in")&" ')"
set rs=con.execute(sql)
%>
ค่าที่ดึงมาจาก form
Select
select [field] from [table] [where field
condition] [order by field [option]]
• select name,password from user
• select name,password from user where
name='xxx'
• select * from user where name like 'x%'
order by password desc
ข้อมูลเพิ่มเติม
• http://www.w3schools.com/sql/default.asp
การดึงค่ามาแสดงทั้งหมด
Sql="select * from db"
Set rs=con.execute(sql)
Do while not rs.eof
response.write rs("name")
rs.movenext
loop
Rs.close
Con.close
rs
ข้อสังเกตุ
• ในการ Select ข้อมูลจะถูกเก็บใน Record set ซึ่งเป็ นเหมือน
ตาราง (View) ที่มีเฉพาะข้อมูลที่ Select ได้
• กรณี select จากหลาย table ไม่ควรตั้งชื่อ field เหมือนกันใน
แต่ละ table
• สามารถใช้หลาย record set ในเวลาเดียวกันได้
• การกาหนดค่าที่เป็ นตัวอักษรให้ใส่ เครื่ องหมาย ' ครอบไว้
แบบฝึ กหัด
• สร้าง form เพื่อรับข้อมูลจากบัตรประชาชน และเก็บลงในฐานข้อมูล
• แสดงข้อมูลในฐานข้อมูลทั้งหมด เรี ยงตามชื่อ
• สร้างให้การทางานทั้ง 2 อยูใ่ นรู ปแบบเมนู
สัปดาห์ที่ 5
SQL Update,delete
Update
• Update table set
field1=value1,field2=value2,....
[where field เงื่อนไข]
Update user set name='xxx',age=50 where
id=20
หลักการ
1.
2.
3.
4.
5.
อ่านข้อมูลจากฐานข้อมูล
เลือกรายการที่ตอ้ งการ Update
แสดงค่าเดิมที่มีใน form
แก้ไขค่าด้วย form
เขียนค่ากลับคืนฐานข้อมูล
Delete
• Delete from table where field เงื่อนไข
delete from user where name='x' and age=10
หลักการ
1.
2.
3.
4.
อ่านข้อมูลจากฐานข้อมูล สร้างเป็ นรายการตัวเลือกสาหรับการลบ
เลือกรายการที่ตอ้ งการลบ
แจ้งข้อความยืนยันการลบ
หากมีการยืนยันให้ลบข้อมูลนั้น
ข้อควรระวัง
• การ delete และ update ให้ระวังเงื่อนไขในการทางาน
(where) เนื่องจากหากไม่กาหนดจะเป็ นการ ลบ หรื อ แก้ไขข้อมูล
ทั้งหมด ทาให้เกิดความเสี ยหายแก่ขอ้ มูลได้
SQL Note
• ควรกาหนดคาสัง่ SQL ไว้ในตัวแปรก่อนนาไป Execute
• ก่อน Execute ควรตรวจสอบความถูกต้องของ String ก่อน
sql="select * from user where
name='"&request("name")&"'"
' set rs=conn.execute(sql)
response.write sql
แสดงค่า sql
• อย่าลืมปิ ดฐานข้อมูล เพราะการเปิ ดฐานข้อมูลจะทาให้ server ใช้
ram ในการจัดเก็บข้อมูลขึ้นเรื่ อยๆ
แบบฝึ กหัด
จากสัปดาห์ที่แล้ว
• ให้สร้างเมนูเพื่อทาการลบข้อมูล โดยให้เติมชื่อคนที่ตอ้ งการลบ
• ให้สร้าง Link เพื่อทาการลบไว้ในรายการแสดงผล
สัปดาห์ที่ 6
การจดจาระหว่าง Client - Server
• Session
• Cookies
Session Object
• ออปเจ็กต์ Session
ออปเจ็กต์ Session ใช้เก็บข้อมูลการใช้งานของ Client แต่ละเครื่ องที่
ส่ งการร้องขอเข้ามา
รู ปแบบ คือ
Session[.collection/property/method/event]
เช่น
Session("name")="aaa“
เป็ นการสร้างและกาหนดค่า
response.write (session("name"))
เรี ยกใช้ session
Session.TimeOut = 99
กาหนดการหมดอายุ session
Session("x")=5
Session("x")=20
Session("x")=0
`
server
A
B
client
C
Session Property
•
•
•
•
CodePage
LCID
SessionID
Timeout
Session collection property
• Contents
• StaticObjects
Session methods
• Abandon
• Contents.Remove
• Contents.RemoveAll
การสร้างและให้ค่า
Session("name")=value
Session("id0012")=5
Session("id0013")="abcd"
Session(10)=5
Session(30)="msu"
Session(abcd)=5
ผิด
ถูก
Session(“abcd”)=5
การเรี ยกใช้งาน
session("name")
Sample
Response.write session("aaa")
Session("zzz")=Session("zzz")+10
การเรี ยกดู session ทั้งหมดที่มี
For Each item in Session.Contents
response.write session(item)
Next
การลบ Session บางตัว
Session.Contents.Remove("name")
การลบ Session ทั้งหมด
Session.Contents.RemoveAll
Cookies
• Cookies คือชุดของข้อมูลที่ Server เก็บไว้ยงั เครื่ องของ
client เพื่อให้ Server ที่สร้างร้องขอข้อมูลนี้ได้ในภายหลัง
• หมายเหตุ
User สามารถกาหนดตัวเลือกไม่ให้บราวเซอร์ใช้ cookie ก็ได้
Cookies
• การให้ ค่า cookies
Response.Cookies(name).Attribute=Value
Name คือ ชื่อที่ใช้ระบุชื่อ cookie ที่ตอ้ งการ
Value คือค่าของข้อมูลที่ตอ้ งการเก็บในใน cookies ที่สร้างขึ้น
Attribute คือค่าบอกคุณสมบัติซ่ ึงตัวเลือกของ Attribute สาหรับ
Response มี 5 ตัวดังต่อไปนี้:
Domain กาหนด Domain ที่สร้าง Collection Cookies
Expires กาหนดวันที Cookies นั้นจะหมดอายุ
HasKeys ถ้าเป็ นค่า True แสดงว่า Cookies นั้นยังมี
Path เป็ น Attribute กาหนด Path ที่ Cookies ถูกส่ งออกไป
Secure ระบุการใช้ช่องทางการที่ปลอดภัยสาหรับ cookie
การสร้าง Cookies
• ใช้ Object response ในการสร้าง
Response.Cookies("Main") = "DevSite"
Response.Cookies("Prd1") = "ASP"
Response.Cookies("Prd2") = "VBScript"
Response.Cookies("id")=10
การเรี ยกใช้ Cookies
การเรี ยกใช้ Object request
response.write
request.Cookies("Main")
a= request.Cookies("id") + 10
การประยุคใช้ Session และ cookies
• ใช้ในการจดจา user โดยการใช้จา username เมื่อ login
• วิธีการ
– ป้ อน username และ password จาก textbox
– Select ข้อมูลจากฐานข้อมูล โดย select ตาม username และ
password ที่ป้อนเข้ามา
– ถ้าพบให้สร้าง cookies หรื อ session จา username ไว้
– นาค่าไปใช้ในการทาคาสั่งต่างๆของ user
แบบฝึ กหัด
• ให้สร้างฐานข้อมูลประกอบด้วยตาราง member มีขอ้ มูล
ประกอบด้วย username,password,name
• สร้างคาสัง่ ในการสมัครสมาชิก
• สร้างคาสัง่ login จาด้วย session หรื อ cookies
• สร้างคาสัง่ แสดงข้อมูลส่ วนตัวของผู ้ login
สัปดาห์ที่ 7
• Server Object และการเรี ยกใช้งาน
• Request / Response
• Session และ Application
• Cookies
Server Object และการเรี ยกใช้งาน
• ASP จะประกอบไปด้วย ออปเจ็กต์ ที่มีอยู่ ทั้งหมด 7 ประเภท
1. ออปเจ็กต์ Request
2. ออปเจ็กต์ Response
3. ออปเจ็กต์ Application
4. ออปเจ็กต์ Session
5. ออปเจ็กต์ Server
6. ออปเจ็กต์ ObjectContext
7. ออปเจ็กต์ ASPError
ส่ วนประกอบของ Object
• property
• collection property
• method
• event
Collection Property
• คือข้อมูลที่เก็บไว้ดว้ ย Property เดียวกันแต่ใช้ name ในการเข้าถึง
ต่างกัน เช่น
<%
response.cookies("name")="xxx"
response.cookies("password")="abc"
response.cookies("Age")=10
%>
Property คือ
cookies
name
คือ
name,password,age
สามารถใช้ Loop For Each item in ... Next ในการดึงค่า
Collection ออกมาได้ เช่น
<%
For Each item In Request.ServerVariables
Response.Write item & " = " &
Request.ServerVariables(item) & "<BR>"
Next
%>
Key
• ในบาง Property มีการใช้ name ซ้ ากันได้ดงั นั้น การเข้าถึง
property เหล่านั้นจะต้องใช้ Key มาช่วยเพื่อให้เข้าถึงข้อมูลแต่
ละตัวได้ เช่น
response.cookies("book")("cartoon")="xmen"
response.cookies("book")("Story")="Harry protter"
response.cookies("book")("Computer")="C++"
Request Object
ใช้ในการตรวจสอบข้อมูลของ Client ที่ส่งมาจาก Browser
รู ปแบบ คือ
Request.collection/property/method](variable)
เช่น
request.cookies("my_site")("username")
request.form("file_name")
Request property
• TotalBytes
Request collection property
•
•
•
•
•
ClientCertificate
Cookies
Form
QueryString
ServerVariables
Response Object
ใช้ในการส่ งค่าจาก Server กลับไป Client
รู ปแบบ คือ
Response[.collection/property/method] [ = value]
เช่น
response.cookies("my_site")("username") = "abc"
response.redirect ("http://www.yahoo.com")
response.write ("test")
response property
• Expires
• ExpiresAbsolute
response collection property
• Cookies
response methods
• Redirect (URL)
• Write (variant)
Session Object
• ออปเจ็กต์ Session
ออปเจ็กต์ Session ทาหน้าที่ดูแลและเก็บข้อมูลการใช้งานของไคลเอ็นต์
แต่ละเครื่ องที่ส่งการร้องขอเข้ามา
รู ปแบบ คือ
Session[.collection/property/method/event]
เช่น
Session("name")="aaa"
response.write (session("name"))
Session.TimeOut = 99
Application Object
• ออปเจ็กต์ Application
ออปเจ็กต์ Application Object ใช้ในการ Share ค่า ระหว่าง Client ที่
ส่ งการร้องขอมา
รู ปแบบ คือ
Application [.collection/method/event]
เช่น
application("vartime")="xxx"
application("vartime")="xxx"
Application Collection Property
• Contents
• StaticObjects
Application Method
•
•
•
•
Contents.Remove
Contents.RemoveAll
Lock
Unlock
Server Object
• ออปเจ็กต์ Server ทาหน้าที่ในการติดต่อกับ Function ต่างๆที่มีใน
Server
รู ปแบบ Server[.property/method]
ชื่อ
ประเภท
คาอธิบาย
ScriptTimeout
Property
CreateObject
method
กาหนดเวลาใช้ในการประมวลผลสคริ ปต์คา่
ดีฟอลต์คือ 90 วินาที
สร้างออปเจ็กต์จากคอมโพเนนต์ต่างๆ
HTMLEncode
method
แปลงข้อความให้อยูใ่ นรู ปของโค้ด HTML
MapPath
method
แปลงจากพาธให้เป็ นพาธเสมือน
URLEncode
method
แปลงข้อความให้อยูใ่ นรู ปของ URL
ObjectContext
เป็ นออปเจ็กต์ที่มีประโยชน์กบั Microsoft Transaction Server
เพราะออปเจ็กต์น้ ีจะใช้ประโยชน์ในการจัดการกับ transaction
ทั้งเมื่อ ส่ ง(Commit) หรื อยกเลิก (Abort)
ชื่อ
ประเภท
คาอธิบาย
SetComplete
Method
จะแสดงถ้าสคริ ปต์น้ นั ยังไม่เสร็จสมบูรณ์
SetAbort
Method
ยกเลิกการสร้าง transaction จาก ASP
OnTransactionCommit
Event
เกิดขึ้นเมื่อมีการส่ งสคริ ปต์ออกไป
OntransactionAbort
Event
เกิดขึ้นเมื่อมีการยกเลิกการส่ งสคริ ปต์ออกไป
ASPError Object
ทาหน้าที่เก็บรวบรวมข้อมูลที่เป็ นรายละเอียด ของการเกิดข้อผิดพลาด
มีพร็ อพเพอร์ ต้ ี 9 ตัวที่เป็ นแบบอ่านอย่างเดียว
Programming Plan
•
•
•
•
Global & Local Value
Menu & Parameter
Sub
Function
สัปดาห์ที่ 8
สอบกลางภาค
สัปดาห์ที่ 9
• แนวทางการพัฒนาเว็บ
แบบที่ 1
แบบแยกไฟล์
1.asp
<a href=2.asp>
2.asp
3.asp
<form Action=3.asp>
<%
.........
.........
.........
response.redirect "1.asp"
%>
แบบที่ 2
• แบบรวมไฟล์
Menu
เลือกการทางาน
การทางาน
<a href=my.asp?menu=1>add_data</a>
<a href=my.asp?menu=2>Delete</a>
<%
select case request("menu")
Case 1 add()
Case 2 del()
End select
Sub add()
……….. response.redirect "?"
End sub
Sub del()
………..response.redirect "?"
End sub
%>
<%Sub …..
If request (ข้อมูลจาก Form) <>?? then
%>
<form>
<input type=hidden name=menu value=…>
</form>
<%
Else
จัดการกับ data ที่ส่งมาจาก form
response.redirect "?"
End if
End Sub%>
แนวคิดในการวางแผนเขียนโปรแกรม
• วิเคราะห์ระบบ ให้เข้าใจอย่างลึกซึ้งถึงความต้องการ และ function
การใช้งานของผูใ้ ช้
• ออกแบบหน้าจอการใช้งานด้วยกระดาษ อาจใช้การวาดด้วยมือ
• ออกแบบฐานข้อมูล
• เริ่ มเขียนโปรแกรม
เริ่ มเขียนโปรแกรม
• เขียนส่ วนที่ใช้ในการเก็บข้อมูลพื้นฐานก่อน เช่น การสมัครสมาชิก หรื อ
การเพิ่มสิ นค้า
• สร้างส่ วนที่ใช้ในการเข้าสู่ระบบ (login) ของสมาชิกต่างๆ ข้อมูล
สมาชิกอาจก็บไว้ใน table เดียวกันทุกระดับได้ เลือกใช้ session
หรื อ cookies ในการจาการ login
• สร้างส่ วน log out
• สร้างส่ วนในการแสดงผล
ส่ วนในการแสดงผล
• การแสดงผลข้อมูลที่เป็ นรายการ พยายามทาให้รายการเชื่อมโยงไปยังกระบวนการ
อื่นที่เกี่ยวข้องได้ เช่นการลบ การแก้ไข หรื อการแสดงรายละเอียดเพิม่ เติมของ
ข้อมูลนั้น และแสดงข้อมูลที่คาดว่าผูใ้ ช้น่าจะสนใจเท่านั้น ไม่จาเป็ นต้องแสดงทุก
field
• ทาให้รายการอยูใ่ นแบบตารางจะได้ดูง่าย และควรผูใ้ ช้สามารถ click หัวตาราง
เพื่อเรี ยงข้อมูลตามต้องการได้
• หากข้อมูลมีปริ มาณไม่มากนัก และการเข้าใช้งานมีนอ้ ย ไม่ควรแสดงเป็ นหน้าๆ
เพราะทาให้ผใู้ ช้งานค้นหาข้อมูลยาก และดูภาพโดยรวมได้ยาก
• ใช้รูปภาพในการโต้ตอบ เช่น แทนการลบ แทนการแก้ไข แทนการแสดง
รายละเอียด
• ไม่ควรให้ผใู ้ ช้งาน click หลายครั้งเพื่อให้ได้ขอ้ มูลที่ตอ้ งการ
• อย่ามัวปรับแต่งความสวยงาม
การสร้างความปลอดภัยให้ web
ตัวอย่างระบบกระดานข่าว
สมัครสมาชิก
ตั้งคาถาม
แสดงคาถาม
ค้นหาคาถาม
ตอบคาถาม
• คาถาม
–
–
–
–
–
หัวข้อที่ถาม
รายละเอียด
ข้อมูลผูถ้ าม
วันที่ถาม
จานวนคนอ่าน
• คาตอบ
– รายละเอียดคาตอบ
– ข้อมูลผูต้ อบ
– วันที่ตอบ
• แสดงรายการคาถาม
– หัวข้อ
– วันที่
– ผูถ้ าม
– จานวนคนอ่าน
– หากเป็ นเจ้าของคาถามสามารถลบคาถามตนเองได้
– เรี ยงข้อมูลตามรายการข้างบนได้
สัปดาห์ที่ 11-12
ตัวอย่างระบบขายสิ นค้า
•
•
•
•
•
เพิ่มสิ นค้า
แสดงสิ นค้า
ค้นหาสิ นค้า
หยิบลงตระกร้า
แสดงรายการตระกร้า
การ Upload file
สัปดาห์ที่ 13-15
PHP Programming
Download PHP
http://www.php.net/downloads.php
แตกไฟล์ใน c:\php
แก้ชื่อไฟล์ php.ini-development เป็ น php.ini
การติดตั้ง
ทดสอบโปรแกรม text.php
ตัวเปิ ด-ปิ ด tag php
คาสั่งแสดงผล
ประกาศตัวแปร num
<form>
<input type=text name=x>
<input type=submit>
</form>
<?php
echo $_GET["x"];
$num = $_GET["x"];
if ( $num > 100 )
{
echo "many";
}
?>
ดึงค่าจาก form
Test.php
Test.asp
<form>
<input type=text name=x>
<input type=submit>
</form>
<?php
if ($_GET["x"] != "")
{ echo $_GET["x"];}
else
{ echo "No data"; }
?>
<form>
<input type=text name=x>
<input type=submit>
</form>
<%
If request("x")<>"" then
Response.write request("x")
else
Response.write "No data";
End if
%>
PHP function
• http://code.function.in.th/php
การเปิ ดปิ ดคาสั่ งภาษา php
<?
คาสัง่
?>
ใช้เปิ ด
ใช้ปิดคาสัง่
สัญลักษณ์ปิดคาสัง่
เมื่อเขียนคาสัง่ เสร็ จแล้วให้ใส่
;
การแสดงผล
echo
echo "www", "bamboolabcode", "com";
print
print "www bamboolabcode com";
printf
printf ( format, string1, string2, ..., stringn );
printf( "%'?8d %'08d", 300, 300 );
%b แสดงเลขจานวนเต็มฐาน 2
%o แสดงเลขจานวนเต็มฐาน 8
%d แสดงเลขจานวนเต็มฐาน 10
%x, $X แสดงเลขจานวนเต็มฐาน 16
%e แสดงเลขแบบ double ที่อยูใ่ นรู ปแบบยกกาลัง
%f, $F แสดงเลขแบบ double ที่ไม่อยูใ่ นรู ปแบบยกกาลัง
%u กาหนดให้มีเครื่ องหมาย '+' หรื อ '-' อยูข่ า้ งหน้า
%c แสดงตัวอักษรที่ถูกกาหนดโดย ascii
%S แสดงข้อความแบบ string % แสดงเครื่ องหมาย '%'
%'ตัวอักษร แสดงตัวอักษร ( ไ้้ดต้ วั เดียวเท่านั้น )
%- กาหนดให้ตวั อักษรชิดซ้าย
การประกาศตัวแปรภาษา php
syntax :
$ชื่อตัวแปร;
$ชื่อตัวแปร = ค่ าข้ อมูล;
$ชื่อตัวแปร1, $ชื่อตัวแปร2, $ชื่อตัวแปร3;
example:
$count;
$bool = true;
$first_name, $last_name, $sex;
comment:เนื่องจาก ภาษา php ไม่ได้เข้มงวดในเรื่ องของชนิ ดข้อมูล
เหมือนกับภาษาอื่นๆ ดังนั้นการกาหนดค่าให้กบั ตัวแปร สามารถกาหนดให้เป็ น
ชนิดไหนก็ได้ ( สลับไปมาก็ได้ )
if
การถอดค่าจาก php ใส่ ใน html
เมื่อต้องการค่าจาก php แทรกไว้ใน html ให้เขียน
<?=ค่า?>
เช่น
<?
x=10;
?>
<hr size=“<?=x?>”>
Select ODBC DSN
• Create an ODBC Connection
• $conn=odbc_connect('My_DSN','','');
$sql="SELECT * FROM customers";
$rs=odbc_exec($conn,$sql);
• การดึงค่า field
• $compname=odbc_result($rs,"CompanyName");
field
• จานวนแถวทั้งหมดที่ได้
• odbc_fetch_row($rs)
• ปิ ดฐานข้อมูล
• odbc_close($conn);
•
<?php
$conn=odbc_connect('northwind','','');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql="SELECT * FROM customers";
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
echo "<table><tr>";
echo "<th>Companyname</th>";
echo "<th>Contactname</th></tr>";
while (odbc_fetch_row($rs))
{
$compname=odbc_result($rs,"CompanyName");
$conname=odbc_result($rs,"ContactName");
echo "<tr><td>$compname</td>";
echo "<td>$conname</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>