ในสคริปต์ VB คุณไม่จำเป็นต้องกำหนดตัวแปรหรือกำหนดประเภทอย่างชัดเจนเหมือนในภาษาสคริปต์อื่นๆ มีตัวแปรในครั้งแรกที่คุณใช้ อย่างไรก็ตาม คุณลักษณะนี้ทำให้โค้ดของคุณพร้อมใช้งานอย่างกว้างขวางในรูปแบบ typescript หากคุณกำหนดชื่อตัวแปรไม่ถูกต้องในโค้ดของคุณ ตัวแปรใหม่จะถูกสร้างขึ้น สคริปต์ของคุณอาจทำงานไม่ถูกต้อง และคุณอาจไม่ทราบถึงข้อผิดพลาด
%<%Dim IntUserID%>%
IntUserID พร้อมใช้งานแล้ว สำหรับเครือข่ายความปลอดภัยอื่น ให้ใช้ Option Explicit หากคุณเปิด Option Explicit คุณจะปล่อยสัญญาณข้อผิดพลาดทุกครั้งที่คุณใช้ตัวแปร ฟังดูน่าเบื่อ แต่สามารถให้เบาะแสบางอย่างแก่คุณเมื่อมีข้อผิดพลาดเกิดขึ้นในสคริปต์ของคุณ ไม่เช่นนั้น คุณจะต้องทำงานอย่างหนักเพื่อค้นหาว่าข้อผิดพลาดอยู่ที่ไหน
หากต้องการใช้ Option Explicit ให้วางบรรทัดแรกในสคริปต์ของคุณดังนี้:
<% Option Explicit %>
หากคุณต้องการดูว่าเกิดอะไรขึ้นเมื่อคุณลืมกำหนดตัวแปร คุณสามารถเรียกใช้โค้ดนี้ได้:
<% Option Explicit %>
<:% strName = Request.Form("Name") %>
เนื่องจากไม่ได้กำหนดตัวแปร strName (Dim strName) คุณจะเห็นข้อผิดพลาดต่อไปนี้เกิดขึ้น:
ข้อผิดพลาดรันไทม์ Microsoft VBScript '800a01f4'
ไม่ได้กำหนดตัวแปร: 'strName'
/e/oe-test.asp บรรทัด 10
ใช้ Len
คุณสามารถใช้ฟังก์ชัน Len(string) เพื่อกำหนดความยาวของสตริงข้อความ:
<%
IntString = "นี่คือประโยคง่ายๆ"
IntStringLength = Len(IntString)
Response.Write "มีอักขระ " & IntStringLength & " (รวมถึงการเว้นวรรค) ในประโยคที่แสดงด้านล่าง:"
การตอบสนองเขียน "" & IntString & ""
%>
หากคุณสงสัยว่า Len ทำงานด้วยตนเองอย่างไร ลองนึกถึงแบบฟอร์มที่คุณขอให้ผู้ใช้ป้อนรหัสห้าหลักหรือ PIN สามหลัก เมื่อใช้ Len คุณตรวจสอบว่าคุณได้ป้อนตัวเลขเพียงพอแล้ว
ใช้การตัดแต่ง
การตัดสายเป็นสิ่งที่คุณต้องการทำให้ถูกต้องตั้งแต่เริ่มต้น หลายครั้งที่สตริงมีพื้นที่เพิ่มเติมที่จุดเริ่มต้นหรือจุดสิ้นสุด และถ้าคุณไม่สมดุล คุณอาจต้องกังวลเกี่ยวกับการเสียเวลากับตัวแปรเหล่านั้น
<% strName = Request.Form("ชื่อ")
strCheckName = "เอมี่ โคเวน"
ถ้า strName = strCheckName แล้ว
ตอบกลับเขียนว่า "สำเร็จ! ชื่อตรงกัน"
อื่น
ตอบกลับเขียนว่า "ขออภัย ชื่อไม่ตรงกัน"
จบถ้า
%>
ถ้าค่าของ strName คือ "Amy Cowen" เพราะนั่นคือวิธีที่ฉันป้อนลงในกล่องแบบฟอร์ม แล้วทดสอบว่าตัวแปรทั้งสองเหมือนกันหรือไม่ ไม่ใช่ เพราะ "Amy Cowen" ไม่ใช่ "Amy Cowen" เช่น
เดียวกัน หากคุณป้อนชื่อลงใน URL:
<% Response.Write " & objRec("Name") & "">เว็บไซต์ของคุณ" %>
หากส่วนใดส่วนหนึ่งของเรกคอร์ดใน Name มีพื้นที่เพิ่มเติม คุณจะเรียกใช้อย่างรวดเร็ว เป็นคำถามเกี่ยวกับข้อผิดพลาด
คุณสามารถแก้ไขสตริงกระบวนการทั้งหมดเพื่อดำเนินการทางซ้ายหรือขวา:
<% strComments = Request.Form("Comments")
strComments = ตัดแต่ง (strComments)
%>
สมมติว่าผู้ใช้ป้อน:
"ฉันกำลังมีปัญหาในการติดตั้งซอฟต์แวร์ที่ฉันดาวน์โหลด"
ข้อความสั่งตัดด้านบนจะแบ่งพื้นที่เพิ่มเติม เหลือเพียงเนื้อหาต่อไปนี้:
"ฉันกำลังมีปัญหาในการติดตั้งซอฟต์แวร์ที่ฉันดาวน์โหลด" "
ทีนี้ กลับมาที่ตัวอย่าง "Amy Cowen" ของเรา ถ้าฉันเพิ่มสคริปต์ต่อไปนี้ เราก็จะสำเร็จ:
strName = Trim(strName)
หากต้องการตัดแต่งทางด้านขวา ให้ใช้ Rtrim(string) หากต้องการตัดแต่งทางด้านซ้าย ให้ใช้ Ltrim( string ).Conversion
เมื่อคุณเริ่มใช้ภาษาที่คล้ายกับ VB คุณจะทำผิดพลาดง่ายๆ เช่น การเปรียบเทียบจำนวนเต็ม 512 กับสตริง 512 หากคุณตระหนักว่า 512 ก่อนหน้าและ 512 ถัดไปแตกต่างกัน คุณสามารถคิดได้ว่าเหตุใดสคริปต์ที่กำหนดจึงทำงานไม่ถูกต้อง
ลองนึกภาพว่าคุณส่ง ID ไฟล์ไปยังสคริปต์ ASP โดยใช้ Request.QueryString และคุณจะต้องแน่ใจว่า ID ไฟล์นั้นเป็น ID ที่ผู้ใช้ต้องการแก้ไข คุณต้องป้อนข้อมูลบางอย่างสำหรับบันทึกจากฐานข้อมูลและแสดงบนหน้าจอ รหัสในฐานข้อมูลจะคล้ายกับจำนวนเต็ม โดยเฉพาะอย่างยิ่งหากคุณใช้ฟีเจอร์ AutoNumber ในพื้นที่นั้น ID ที่คุณป้อนจริงๆ แล้วเป็นสตริง ดังนั้นทั้งสองนี้จึงไม่สามารถจับคู่ได้เว้นแต่คุณจะแคสต์เป็นประเภทเดียวกัน
คำขอ QueryString:
เมื่อใช้ FileSystemObject คุณสามารถทดสอบการมีอยู่ของข้อความ เช่น *.html, *.asp, *.inc., *.gif—หรือไดเร็กทอรี หากมีไฟล์อยู่ คุณสามารถต้องการให้ลำดับของเหตุการณ์เกิดขึ้นได้ หากไม่มีไฟล์อยู่ คุณอาจต้องการให้เหตุการณ์อื่นเกิดขึ้น ใช้รหัสต่อไปนี้: <%
sPath="/profiles/" & strFileName & ".asp"
sFile=Server.MapPath(sPath)
ตั้งค่า fe=Server.CreateObject("Scripting.FileSystemObject")
ถ้า fe.FileExists (sFile) แล้ว
'ทำบางสิ่งบางอย่าง
ตอบกลับเขียนว่า "ใช่! ฉันพบแล้ว!"
Response.Write "คุณสามารถเข้าถึงไฟล์นั้นโดย"
การตอบกลับเขียน "<A HREF=""" & sPath & """>คลิกที่นี่</A>"
อื่น
'ทำบางสิ่งบางอย่าง
Response.Write "ขออภัย ไม่มีไฟล์ที่ร้องขอ"
สิ้นสุดถ้า
%>
หากต้องการทดสอบไฟล์ของคุณ ให้เพิ่มสคริปต์ที่ด้านบน:
strFileName = "name"
' ก่อนอื่นให้กำหนดชื่อไฟล์ที่คุณมีให้กับตัวแปรนี้
' strFileName เป็นเพียงชื่อ ไม่ใช่นามสกุลหรือเส้นทาง
' ตรวจสอบให้แน่ใจว่าคุณเปลี่ยนพาธสำหรับ sPath ไปยังไดเร็กทอรีเสมือนที่ไฟล์ของคุณอยู่
'เรียกใช้สคริปต์
' จากนั้นกลับมาและเปลี่ยนตัวแปร strFileName เป็นชื่อไฟล์
' คุณไม่มี
' เรียกใช้สคริปต์
การเปลี่ยนโค้ดที่ป้อนเป็นจำนวนเต็มทำได้ง่ายมาก และจะทำให้งานของคุณในอนาคตง่ายขึ้น รูปแบบตัวอย่างคือ:
<%
dim intUserID intUserID = Request.QueryString("userID")
intUserID = CInt(intUserID)
' intUserID ตอนนี้เป็นจำนวนเต็ม
%>
คุณยังสามารถแสดงความคิดเห็นโค้ด ASP ของคุณและใช้งานได้
รหัสความคิดเห็น
ใน ASP สคริปต์จะถูกดำเนินการก่อนที่จะถูกส่งไปยังเบราว์เซอร์ ดังนั้นคุณไม่จำเป็นต้องใช้แท็กความคิดเห็น HTML ปกติเพื่อซ่อนสคริปต์จากเบราว์เซอร์รุ่นเก่า ที่จริงแล้ว สคริปต์ของคุณจะไม่แสดงในซอร์ส HTML เนื่องจากเบราว์เซอร์เป็นผู้ส่งซอร์สโค้ดนั้น ดังนั้นเบราว์เซอร์รุ่นเก่าจะไม่ส่งโค้ดใดๆ ไปที่หน้าจอทันที
คุณอาจต้องการแสดงความคิดเห็นในสคริปต์ ASP ของคุณด้วยความคิดเห็น ในสคริปต์ VB คุณสามารถใช้จุดไข่ปลาเพื่อบันทึกความคิดเห็น:
<%
currentdate = now
' ตรวจสอบให้แน่ใจว่าคุณใช้เครื่องหมายคำพูดล้อมรอบโค้ด HTML
' & ทำหน้าที่เชื่อมสตริงเข้าด้วยกัน
Response.Write "Today is: " & currentdate & "<BR>"
%>
Use // ในสคริปต์ ASP เพื่อระบุความคิดเห็น
โดยใช้ include หากคุณเคยใช้ไฟล์ .shtml มาก่อน คุณอาจคุ้นเคยดี ด้วยขั้นตอนการทำงานที่รวมไว้ หากไม่ เราจะแจ้งวิธีการใช้งานทีละขั้นตอน
การรวมคือความจุซึ่งจัดเก็บไว้ในไฟล์แยกต่างหาก ใน HTML มาตรฐาน มักจะใช้นามสกุล .inc ใน ASP คุณใช้ส่วนขยาย .asp, .txt หรือ .inc จากนั้นคุณจะเรียกไฟล์เป็นโค้ด HTML เมื่อส่งไฟล์ HTML ไฟล์รวมจะถูกนำออกจากไฟล์พิเศษและเขียนลงบนหน้าจอโดยตรงเป็นเนื้อหาของ HTML ดังนั้น หากคุณสร้างซอร์สโค้ดการดู หน้าที่แสดงที่คุณเห็นจะเหมือนกับสิ่งที่คุณป้อน
สำหรับ HTML ธรรมดา จะช่วยประหยัดเวลาได้มากในการสร้างเทมเพลตสำหรับไซต์ องค์ประกอบส่วนหัว ส่วนท้าย และการนำทางเป็นส่วนหนึ่งของสิ่งที่ปรากฏบนหน้าเว็บจำนวนมากของคุณ เมื่อคุณใช้การรวม คุณจะป้อนไฟล์หนึ่งครั้งและเรียกมันเมื่อจำเป็น มีข้อดีหลายประการ:
เมื่ออัปเดตเนื้อหา คุณจะต้องอัปเดตไฟล์เดียวเท่านั้น
การรวมเนื้อสัตว์นั้นแยกออกจากหน้า HTML ดังนั้นใครก็ตามที่ต้องการเปลี่ยนแปลงเนื้อหาสามารถหลีกเลี่ยงการยุ่งกับสคริปต์ได้
ไฟล์ HTML หลักของคุณมีขนาดเล็กลงและใช้งานได้ดีกว่า
ใน ASP การรวมไม่มีค่า คุณสามารถใช้สคริปต์ซ้ำแล้วซ้ำอีก บางครั้งอาจทำได้ง่ายเพียงแค่สตริงการเชื่อมต่อที่จัดเก็บไว้ในการรวม และสามารถลบได้เมื่อเพจไม่พร้อมใช้งาน
หากต้องการใช้ไฟล์รวม คุณใช้รูปแบบใดรูปแบบหนึ่งเหล่านี้:
<!-- #INCLUDE FILE="filename.inc" -->
หรือ
<!-- #INCLUDE VIRTUAL="/filename.inc" -->
การอ้างอิงไฟล์ประกอบด้วย เส้นทางที่เกี่ยวข้องที่ใช้ VIRTUAL อ้างอิงเส้นทางที่แน่นอนไปยังเซิร์ฟเวอร์ที่เกี่ยวข้อง หากคุณต้องการย้ายไดเร็กทอรีและไฟล์ วิธีที่ง่ายที่สุดคือใช้ VIRTUAL เป็นค่าเริ่มต้น เพื่อไม่ให้คุณพบข้อผิดพลาดที่ไม่คาดคิดในภายหลัง ในทางกลับกัน เมื่อคุณทดสอบไฟล์ คุณจะต้องใช้ไฟล์ เนื่องจากขึ้นอยู่กับวิธีการตั้งค่าเซิร์ฟเวอร์ส่วนตัวของคุณ
ใน HTML มาตรฐาน โดยทั่วไปคุณจะใช้ส่วนต่อท้าย .inc สำหรับไฟล์รวมของคุณ ใน ASP คุณสามารถใช้ .asp วิธีนี้จะป้องกันไม่ให้ผู้อื่นเปิดและอ่านไฟล์ของคุณได้ง่าย