เพื่อจัดการกับผู้ให้บริการพื้นที่ที่ตระหนี่ ทุกคนเคยคิดถึงการใช้ตารางข้อมูลที่เชื่อมโยงเพื่อจัดเก็บฐานข้อมูลขนาดใหญ่ ตอนนี้ให้ฉันบอกวิธีอื่นแก่คุณ: ใช้โค้ดของฟอรัมหนึ่งเพื่อรันสองโปรแกรมฟอรัม วิธีนี้สามารถหลีกเลี่ยงกฎเกณฑ์การให้บริการพื้นที่ที่ไม่อนุญาตให้มีการตั้งค่าโปรแกรมฟอรัมสองชุดในพื้นที่เดียว เนื่องจากการใช้งาน CPU ของเซิร์ฟเวอร์สูงเกินไป
1. เตรียมฐานข้อมูล โปรแกรมฟอรัม ASP หลักส่วนใหญ่บนอินเทอร์เน็ต (เช่น Dongwang Forum 6.1) จะขึ้นอยู่กับฐานข้อมูล Access โพสต์ในฟอรัม ข้อมูลผู้ใช้ การตั้งค่าฟอรัม ฯลฯ ทั้งหมดจะถูกจัดเก็บไว้ในไฟล์ฐานข้อมูล เราจำเป็นต้องเตรียมไฟล์ฐานข้อมูลฟอรัมสองไฟล์ จากนั้นให้โปรแกรมฟอรัมเปิดไฟล์ฐานข้อมูลที่แตกต่างกันตามเงื่อนไขที่แตกต่างกัน
อัปโหลดฟอรัมท้องถิ่นไปยังเซิร์ฟเวอร์ จากนั้นเตรียมฐานข้อมูล 2 ชื่อ bbs1.mdb และ bbs2.mdb (เพื่อความปลอดภัยของฟอรัม สามารถเปลี่ยนชื่อไฟล์ให้ซับซ้อนยิ่งขึ้นได้) และอัปโหลดไปยังเซิร์ฟเวอร์ / abc/bbs/ data/ ไดเร็กทอรี ฐานข้อมูลสามารถใช้ฟอรัมที่มีอยู่หรือฐานข้อมูลเริ่มต้นของฟอรัมก็ได้
2. เงื่อนไขการพิจารณา มีเงื่อนไขมากมายที่ใช้ในการกำหนดการเข้าสู่ฟอรั่ม เช่น ที่อยู่ IP ของผู้เยี่ยมชม ระบบปฏิบัติการ เวลาในการเข้าถึงฟอรั่ม เป็นต้น ที่นี่ผู้เขียนใช้ที่อยู่ URL ที่ผู้เยี่ยมชมส่งมา
ฟอรัมอาจมีที่อยู่ที่แตกต่างกันสองแห่ง เช่น "www.cpcw.com" และ "WWW.CPCW.COM" แม้ว่า URL ทั้งสองจะชี้ไปที่เว็บไซต์หนังสือพิมพ์คอมพิวเตอร์ แต่ในมุมมองของ VbScript ทั้งสองรายการนั้นเป็นสตริง ASCII ที่แตกต่างกันเนื่องจากตัวพิมพ์ใหญ่ และตัวอักษรตัวพิมพ์เล็กจะถูกรับรู้เป็นอักขระที่แตกต่างกัน ดังนั้นที่อยู่สองแห่งที่มีตัวพิมพ์ใหญ่และตัวพิมพ์เล็กต่างกันสามารถใช้เป็นเงื่อนไขในการตัดสินได้
Request.ServerVariables เป็นออบเจ็กต์ ASP ในตัวสำหรับการรับตัวแปรสภาพแวดล้อม ค่าของโค้ด Request.ServerVariables("SCRIPT_NAME") คือเส้นทางของเพจ ASP ที่ดำเนินการในปัจจุบัน ตัวอย่างเช่น เมื่อเข้าถึง http://www.scat.com/aBc/test.asp (โปรดสังเกตกรณีนี้!) ค่าของ Request.ServerVariables("SCRIPT_NAME") คือ: "/aBc/test.asp"
เรากำหนดว่าที่อยู่ของฟอรัมทั้งสองคือ http://www.scat.com/ABC/bbs และ http://www.scat.com/abc/bbs ในความเป็นจริง คุณสามารถใช้วิธีนี้เพื่อเปิดฟอรัมมากกว่าสองฟอรัม เนื่องจากจากมุมมองของการเรียงสับเปลี่ยนและการรวมกัน สามารถมีกำลัง 2 ถึง n ของการรวมตัวพิมพ์ใหญ่และตัวพิมพ์เล็กของ URL ที่มีความยาว n!
3. ปรับเปลี่ยนโปรแกรมฟอรั่ม เพื่อความสะดวกในการเขียนโปรแกรม โปรแกรมฟอรั่ม ASP ส่วนใหญ่จะมีโค้ดสำหรับเปิดออบเจ็กต์ฐานข้อมูลที่แยกและวางไว้ใน conn.asp นี่เป็นการอำนวยความสะดวกสำหรับการดำเนินงานครั้งต่อไปของเรา
เปิด conn.asp ด้วยโปรแกรมแก้ไขข้อความและค้นหาโค้ดต่อไปนี้:
Dim Db
'สำหรับผู้ใช้ฟรี โปรดแก้ไขที่อยู่ฐานข้อมูลท้องถิ่นเป็นครั้งแรก...
DB="datadvbbs6.mdb"
โปรแกรมจะกำหนดตัวแปร Db ที่อยู่สัมพัทธ์ของฐานข้อมูลถูกกำหนดให้กับตัวแปรสตริงนี้ ค่าของตัวแปรนี้จะถูกนำมาใช้ในภายหลังเมื่อโปรแกรมเปิดวัตถุฐานข้อมูล
เราเปลี่ยนบรรทัดเหล่านี้เป็น:
Dim Db
Dim whichbbs
whichbbs =Request.ServerVariables("SCRIPT_NAME ")
if left(Whichbbs, 4)="/ABC" จากนั้น 'Use the left function to intercept the string of required length for comparison
Db= " /data/bbs1.mdb"
else
Db="/data/bbs2.mdb"
สิ้นสุดหาก
ความหมายของรหัสนี้คือการกำหนดที่อยู่ที่ผู้เยี่ยมชมส่งมาให้กับตัวแปร Wherebbs เนื่องจากครึ่งหลังของที่อยู่ URL เปลี่ยนแปลงเมื่อมีผู้เยี่ยมชมใช้งานในฟอรัม จึงใช้เฉพาะตัวเลข 4 หลักแรกของ Wherebbs เพื่อเปรียบเทียบกับสตริง "/ABC" หากทั้งสองสตริงเหมือนกัน Db จะถูกกำหนดค่า "/data/bbs1.mdb" มิฉะนั้น Db จะถูกกำหนดค่า "/data/bbs2.mdb" จากนั้นฐานข้อมูลที่สอดคล้องกับ Db จะถูกเปิดขึ้น หากที่อยู่ที่ผู้เยี่ยมชมส่งมาคือ http://asp2.6to23.com/ABC ระบบฟอรัมจะเปิดฐานข้อมูลของ bbs1.mdb และอนุญาตให้ผู้เยี่ยมชมเข้าสู่ฟอรัมใน bbs1.mdb มิฉะนั้น ระบบจะเปิด bbs2.mdb และเข้าสู่ bbs2.mdb ในฟอรั่ม
ด้วยวิธีนี้ คุณสามารถตั้งค่าได้มากกว่าหนึ่งฟอรัมในพื้นที่เดียว และการใช้ทรัพยากรเซิร์ฟเวอร์ก็น้อยกว่าการตั้งค่าระบบฟอรัมอิสระสองระบบแยกกันมาก
วิธีนี้สามารถขยายได้:
1. นำไปใช้กับโปรแกรม ASP อื่นๆ ที่เกี่ยวข้องกับการทำงานของฐานข้อมูล เช่น ระบบข่าว ระบบดาวน์โหลด กระดานข้อความ ตัวนับ ฯลฯ
2. ใช้ที่อยู่ IP ของผู้เข้าชมเป็นเงื่อนไขในการตัดสิน (Request.ServerVariables("REMOTE_ADDR")) เพื่อสร้างการกรอง IP ที่ปกปิดและซ่อนเร้นมากขึ้น เพื่อที่ผู้ที่ไม่พึงประสงค์จะถูกแยกออกจากฟอรัมจริงโดยไม่รู้ตัว
3. ใช้ข้อมูลอื่นเป็นเกณฑ์ในการตัดสินตามความต้องการของคุณเพื่อสร้างฟอรัมที่เป็นส่วนตัวและมีสีสันของคุณเอง