วันหนึ่งฉันก็คิดขึ้นมาทันทีว่า จะดีแค่ไหนหากทุกครั้งที่ฉันไปที่เว็บไซต์ ฉันสามารถเรียกข้อมูลที่ต้องการดูได้ทันที ต่อไป ฉันอยากจะคิดให้ลึกซึ้งกว่านี้ โดยนั่งลงบนเก้าอี้พร้อมกับดินสอ และไม่รู้ว่ากำลังเขียนอะไรอยู่ ในกรณีนี้ ฉันยังต้องจัดการกับการเขียนโค้ดพวกมัน
??เพื่อนของฉันเปิดไซต์เล็กๆ ซึ่งแต่เดิมฉันเป็นผู้ออกแบบ นี่เป็นแพลตฟอร์มที่ดีในการทดสอบความคิดของฉัน ดังนั้นฉันจึงเขียนโค้ดและอัปโหลดไฟล์ น่าตื่นเต้นจริงๆ โปรแกรมนี้ทำงานได้อย่างสมบูรณ์แบบ และยังพิสูจน์ได้ว่าความคิดของฉันดีจริงๆ
??ฉันเคยอ่านรายงานแนวโน้มผู้ใช้อินเทอร์เน็ตมาก่อนแล้ว และมีรูปแบบหนึ่งที่ทำให้ฉันประทับใจมาก ว่ากันว่าผู้ใช้ส่วนใหญ่จะออกจากไซต์ทันทีหากไม่พบสิ่งที่ต้องการภายในสามคลิก รหัสของฉันสามารถแก้ปัญหานี้ได้และรับรองว่าผู้ใช้สามารถค้นหาเป้าหมายได้ด้วยการคลิกเมาส์เพียงครั้งเดียว ในตัวอย่างของฉัน สมมติว่าผู้ใช้เข้าสู่ระบบ Yahoo และค้นหา Fireplace Accessories (อุปกรณ์เสริมอุปกรณ์การบิน) ในผลลัพธ์ที่ได้รับ เมื่อเขามาที่ไซต์ของเพื่อนฉัน เขาจะเห็นหน้าจอที่มีข้อความเช่น "คุณกำลังค้นหาอุปกรณ์เสริมสำหรับเตาผิง" จากนั้นเขาจะปฏิบัติตามคำแนะนำบนเว็บไซต์และไปที่หน้าเว็บที่ต้องการไปโดยตรง
??ขั้นตอนแรกที่คุณต้องทำคือสร้างตัวแปรเริ่มต้นในไฟล์ global.asa และวางไว้ในโปรแกรม Sub Session_onStart() ของคุณ
??เซสชันย่อย_onStart()
ผู้อ้างอิง = Trim(Request.ServerVariables("HTTP_REFERER"))
??ถ้าผู้อ้างอิง = "" แล้ว
??ผู้อ้างอิง = "ไม่มี"
?? จบถ้า
??เซสชัน("ผู้อ้างอิง") = ผู้อ้างอิง
??End Sub
??เรามาดูวิธีการทำหน้าที่หลักของโปรแกรมให้สมบูรณ์กันดีกว่า
??เนื่องจาก URL ได้รับการเข้ารหัสแล้ว เราต้องคืนค่าข้อมูลชี้ของโฮสต์ของผู้เข้าชมให้เป็นสิ่งที่มีประโยชน์สำหรับเราก่อน สร้างเพจ ASP เรียกว่า decode.asp ซึ่งเป็นแกนหลักของโปรแกรมของเรา ฟังก์ชั่นแรกคือการถอดรหัสส่วนหัวของตัวชี้ที่เข้ารหัส ขั้นตอนนี้ค่อนข้างยาวและตรงไปตรงมามาก โดยไม่ต้องยุ่งยากใดๆ หากคุณพบว่ายุ่งยาก คุณอาจไปที่ "หลักสูตรการฝึกอบรมหนอนอินเทอร์เน็ต" ที่ www.popunet.com เพื่อค้นหาบทความนี้และใช้ วิธีการ "คัดลอก/วาง"
สิ่งที่สองที่ต้องทำในซอร์สโค้ด
คือการแยกส่วนแบบสอบถามออกจากข้อมูลส่วนหัวของ URL นี่คือสิ่งที่เราต้องการ
'แยกฟิลด์แบบสอบถามออกจาก URL ชี้
?ฟังก์ชันคือผลิตภัณฑ์(pStr)
?? ถ้า pStr <> "" และ lCase(pStr) <> "none" แล้ว
?? 'ค้นหาช่องย้อนหลัง
??temp = inStrRev(pStr, "/")
?? 'รับตำแหน่งของการแยกไดเร็กทอรี
?? tempStr = ขวา(pStr, อุณหภูมิ)
?? 'รับความยาวข้อมูลที่เกี่ยวข้อง
?? temp2 = เลน(pStr)
?? 'รับแถวข้อมูลแบบสอบถาม
??pStr = กลาง(pStr, อุณหภูมิ, temp2)
?? 'ตั้งค่าของฟังก์ชันส่งคืน
?? isProduct = pStr
??อื่น
??isProduct = ""
??สิ้นสุดถ้า
?End Function
?ขั้นตอนต่อไปคือการกำหนดเกณฑ์การค้นหาที่ชัดเจน เพื่อให้บรรลุวัตถุประสงค์นี้ ให้สร้าง "พอยน์เตอร์" ช่องว่างแบบคงที่สองช่องเพื่อค้นหาข้อมูลที่ชี้ไปโดย
Function Finder(byRef prodList, byVal refList)
??'แบบสอบถามคลุมเครือ
??refList = lCase(รายการอ้างอิง)
??' วนซ้ำพอยน์เตอร์เพื่อค้นหาฟิลด์ที่ตรงกัน
??สำหรับ i = 0 ถึง uBound(prodList) - 1
??ถ้า inStr(refList, lCase(prodList(i, 0))) แล้ว
??'ค้นหาคู่ที่ตรงกัน
??tHolder = tHolder & "คุณกำลังมองหา " _
-
??& รายการสินค้า(i, 0) & "
-
??สิ้นสุดถ้า
??'วงที่สอง
??ต่อไป
??'ผลตอบแทน
??Finder = ฟังก์ชัน tHolderEnd
??โดยใส่ decode.asp ที่เราเตรียมไว้ลงในหน้าใดๆ ที่ต้องการฟังก์ชันนี้ เท่านี้ก็เสร็จเรียบร้อย
รายละเอียดมีดังนี้:
'หากส่วนหัวของตัวชี้ไม่ว่างเปล่า ให้เรียกใช้ฟังก์ชันนี้ ถ้า lCase(Session("Referer")) <> "none" OR Session("Referer") <> "" จากนั้น' แยกวิเคราะห์ข้อมูลชี้ การตอบสนองเขียน vbCrLf & "
??" _ & Finder (pArray, URLDecode (isProduct (เซสชัน ("ผู้อ้างอิง")))) _ & "
?? & vbCrLf
??สิ้นสุดถ้า