للتعامل مع مقدمي خدمات الفضاء البخلاء، اعتاد الجميع على التفكير في استخدام جداول البيانات المرتبطة لتخزين قواعد بيانات أكبر. الآن دعني أخبرك بطريقة أخرى: استخدم كود أحد المنتديات لتشغيل برنامجين للمنتدى. يمكن أن يؤدي هذا إلى التحايل على لوائح خدمة الفضاء التي لا تسمح بإعداد مجموعتين من برامج المنتدى في مساحة واحدة على أساس أن استخدام وحدة المعالجة المركزية للخادم مرتفع جدًا.
1. إعداد قاعدة البيانات تعتمد معظم برامج منتدى ASP السائدة على الإنترنت (مثل منتدى Dongwang 6.1) على قواعد بيانات Access. يتم تخزين جميع مشاركات المنتدى ومعلومات المستخدم وإعدادات المنتدى وما إلى ذلك في ملف قاعدة بيانات. نحن بحاجة إلى إعداد ملفين من قاعدة بيانات المنتدى، ومن ثم السماح لبرنامج المنتدى بفتح ملفات قاعدة بيانات مختلفة وفقًا لظروف مختلفة.
قم بتحميل المنتدى المحلي على الخادم، ثم قم بإعداد قاعدتي بيانات باسم bbs1.mdb و bbs2.mdb (لضمان أمان المنتدى، يمكن تغيير أسماء الملفات لتكون أكثر تعقيدًا)، وقم بتحميلهما إلى /الخادم abc/bbs/ البيانات/ الدليل. يمكن لقاعدة البيانات إما استخدام المنتدى الحالي أو قاعدة البيانات الأولية للمنتدى.
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 Whatbbs
Whatbbs =Request.ServerVariables("SCRIPT_NAME ")
if left(Whichbbs, 4)="/ABC" ثم "استخدم الوظيفة اليسرى لاعتراض السلسلة ذات الطول المطلوب للتحقق
Db= " /data/bbs1.mdb"
else
Db="/data/bbs2.mdb"
end if كان
معنى هذا الرمز هو تعيين العنوان الذي أرسله الزائر إلى متغير Whatbbs. نظرًا لأن النصف الثاني من عنوان URL يتغير عندما يكون الزائر نشطًا في المنتدى، فسيتم استخدام الأرقام الأربعة الأولى فقط من Whatbbs للمقارنة مع السلسلة "/ABC". إذا كانت السلسلتان متماثلتين، فسيتم تعيين القيمة "/data/bbs1.mdb" إلى Db؛ وإلا فسيتم تعيين القيمة "/data/bbs2.mdb" إلى Db. ثم سيتم فتح قاعدة البيانات المقابلة لـ Db. إذا كان العنوان المقدم من قبل الزائر هو http://asp2.6to23.com/ABC ، يقوم نظام المنتدى بفتح قاعدة بيانات bbs1.mdb ويسمح للزائر بالدخول إلى المنتدى في bbs1.mdb وإلا فإنه يفتح bbs2.mdb ويدخل bbs2.mdb في المنتدى.
بهذه الطريقة، يمكنك إعداد أكثر من منتدى في مساحة واحدة، ويكون استخدام موارد الخادم أقل بكثير من إعداد نظامين مستقلين للمنتدى بشكل منفصل.
يمكن أيضًا توسيع هذه الطريقة:
1. تنطبق على برامج ASP الأخرى التي تتضمن عمليات قواعد البيانات، مثل أنظمة الأخبار وأنظمة التنزيل ولوحات الرسائل والعدادات وما إلى ذلك.
2. استخدم عنوان IP الخاص بالزائر كشرط للحكم (Request.ServerVariables("REMOTE_ADDR")) لإنشاء تصفية IP مقنعة وأكثر سرية، بحيث يتم عزل الأشخاص غير المرحب بهم عن المنتدى الحقيقي دون علمهم.
3. استخدم المعلومات الأخرى كمعايير للحكم وفقًا لاحتياجاتك الخاصة لإنشاء المنتدى المخصص والملون الخاص بك.