عندما تكتب تطبيقات من جانب الخادم باستخدام ASP ، يجب عليك الاعتماد على مكونات ActiveX لوظائف تطبيقات الويب القوية ، مثل: تحتاج إلى الاتصال بقاعدة البيانات ، وتشغيل قاعدة البيانات عبر الإنترنت ، إلخ.
في المادتين السابقتين ، قدم المؤلف أساليب استخدام مدورة الإعلانات والوصول إلى قاعدة البيانات والمكونات الأخرى.
1. مكونات قدرات المتصفح معروفة جيدًا ، وليس جميع المتصفحات تدعم جميع جوانب تكنولوجيا الإنترنت اليوم. هناك بعض الميزات التي تدعمها بعض المتصفحات ولكن البعض الآخر لا ، مثل: عناصر التحكم ActiveX ، تدفقات الصور ، برامج HTML الديناميكية ، فلاش ، وبرامج البرمجة النصية. باستخدام مكون إمكانات المتصفح في ASP ، يمكنك تصميم صفحات الويب الذكية لتقديم المحتوى بتنسيق يناسب أداء المتصفح. يمكن لمكون قدرات المتصفح إنشاء كائن متصفح يوفر برامج نصية للمستخدم مع وصف وظيفي لمتصفح ويب العميل. السبب في أن هذا المكون يمكنه التعرف على إصدار متصفح العميل هو بشكل أساسي لأنه عندما يرسل متصفح العميل طلب صفحة إلى الخادم ، فإنه سيقوم تلقائيًا بإرسال عنوان HTTP لوكيل مستخدم ، وهو حرف ASCII يعلن عن المتصفح وإصداره . خيط. يقوم مكون قدرات المتصفح بتعيين وكيل المستخدم إلى المتصفح المشار إليه في ملف prowscap.ini ويحدد متصفح العميل من خلال خصائص كائن المتصفح. إذا لم يتمكن الكائن من العثور على عنصر يطابق العنوان في ملف Browser.ini ، فسيتم استخدام خصائص المتصفح الافتراضية. إذا لم يحتوي الكائن على مطابقة تم العثور عليها وتم تحديد إعدادات المتصفح الافتراضية في ملف Browser.ini ، فإنه يقوم بتعيين كل خاصية على السلسلة غير معروفة. بشكل افتراضي ، يتم تخزين ملف browser.ini في نظام Windows/System/InersRV (إذا كان 95/98+PWS4) أو NT/System32/inersrv (إذا NT) ، يمكنك تحرير هذا الملف النص بنفسك لإضافة تعديل الملف عن طريق سماتها الخاصة أو بناءً على أحدث ملف تحديث إصدار المستعرض. يرجى الاطلاع على عملية CheckCoOkie () التالية ، واستخدام سمة ملف تعريف الارتباط لكائن BrowserCap لتحديد ما إذا كان متصفح العميل يدعم ملفات تعريف الارتباط وإرجاع معلومات:
<٪
Sub CheckCookie ()
تعيين browsercap = server.createBject (mswc.browsertype)
إذا browsercap.cookie = صحيح ثم
استجابة. اكتب متصفحك يدعم ملفات تعريف الارتباط!
آخر
الرد. اكتب آسف ، المستعرض الذي تستخدمه لا يدعم ملفات تعريف الارتباط!
إنهاء إذا
نهاية الفرعية
٪>
لمزيد من المعلومات حول مكون قدرات المتصفح ، راجع تصميم موقع الويب الديناميكي ثمانية عشر فنون القتال (2).
2. مكون الوصول إلى الملف إذا كنت قديمًا بما يكفي في الشبكة ، يجب أن تكون قد شاهدت دفتر الزوار CGI في عصر الديناصورات ، وهو أول نموذج أولي من دفتر الزوار على الويب. في ذلك الوقت ، كان من الصعب للغاية الاتصال بقاعدة بيانات الخادم الخلفية في تطبيقات الويب المستندة إلى الإنترنت ، وبالتالي لم يتم تخزين المعلومات التاريخية في دفتر الزوار في قاعدة بيانات الواجهة الخلفية كما هي اليوم. إذن أين يتم تخزين هذه البيانات؟ الإجابة هي ملف نصي. يمكن حفظ معلومات العميل ، ولكن كتابة برامج CGI مرهقة للغاية.
#!/usr/local/bin/perl
# Perl موقع واحد الخادم الخاص بك
طباعة المحتوى من نوع: النص/عادي/ن/ن ؛
if ($ env {'request_method'} eqpost) {
read (stdin ، $ buffer ، $ env {'content_length'}) ؛
} elsif ($ env {'request_method'} eqget) {
$ buffer = $ env {'query_stirng'} ؛
}
@pairs = split (/&/، $ buffer) ؛
foreach $ pair (pairs) {
(اسم $ ، قيمة $) = split (/=/، $ pair) ؛
قيمة $ = ~ tr/+// ؛
$ value = ~ s/٪ ([AF AF 0-9] [AF AF 0-9])/Pack (C ، Hex ($ 1))/EG ؛
$ form {$ name} = $ value ؛}
$ file_name = neverbook.txt ؛ #file name
#محتوى محدد
افتح (ملف ، >> $ file_name) || خطأ في فتح الملف ؛
طباعة سجل الملف وقت: $ date /n /n ؛
طباعة اسم الملف: $ form {'name'} ؛
طباعة وحدة الملف: $ form {'Company'}/n ؛
طباعة ملف الملف: $ نموذج {'phone'}
طباعة عنوان الملف: $ form {'address'}/n ؛
اطبع رمز zip file: $ form {'zip'}
طباعة عنوان البريد الإلكتروني للملف: $ نموذج {'البريد الإلكتروني'}/n ؛
طباعة ملف إرجاع الملف: نموذج $ {'content'}
أغلق (ملف)
يمكنك أن تشعر أنه بالمقارنة مع ASP ، فإن هذا النوع من برنامج CGI يكون أكثر فقراً في قابلية القراءة وقابلية التشغيل. ثم يجب أن ترغب في أن تسأل ما إذا كان بإمكان ASP أيضًا كتابة الملفات مباشرة على الخادم؟ الجواب بالطبع نعم. لكن قد يعتقد الأصدقاء الأذكياء أنه نظرًا لأن الاتصال بين ASP وقاعدة بيانات الويب مريحة للغاية ، فلماذا نحتاج إلى كتابة معلومات العميل في الملفات النصية؟ في الواقع ، بالنسبة لتلك التطبيقات الشائعة على الويب مثل دفتر الزوار و BBS ، لا يمكننا استبدال قاعدة البيانات بكتابة ملفات نصية من حيث كفاءة تنفيذ البرنامج أو سهولة الاستخدام ، ولكن في بعض تطبيقات الويب التي تكتب الملفات النصية في الحقل تكون موحدة و طريقة مريحة نسبيا مقارنة بقاعدة البيانات. إذا كنت على دراية بـ NT ، فيجب أن تعرف أن NT لديه آلية أمان قوية للغاية ، والتي يمكن أن تنقذ جميع عمليات الخادم ومعلومات الاتصال تلقائيًا في ملف يمكن استخدامها على الويب لتسجيل بعض معلومات تسجيل دخول العملاء. يستخدم البرنامج التالي ميزة قراءة ملفات ASP وكتابةها لإنشاء وظيفة تسجل تلقائيًا سجلات خطاب كل مستخدم في برنامج Web BBS.
<٪
set fs = createObject (scripting.filesystemObject)
Forreading = 1
افتح الملف في وضع القراءة فقط. لا يمكن كتابة هذا الملف.
forappending = 8
افتح الملف واكتبه في نهاية الملف.
tristateusedefault = -2
tristatetrue = -1
tristatefalse = 0
'----------------------------
serverMap = server.mappath (/bbs/log/)
'رسم الخرائط المسار المادي
temp = servermap و/& year (التاريخ) والشهر (التاريخ) و//
احصل على المسار المادي ووقت النظام واستخدم هذا كمسار فعلي مخزّن في ملف السجل
إذا لم يكن fs.folderexists (درجة الحرارة) ثم
fs.createfolder (درجة الحرارة)
إنهاء إذا
تحقق مما إذا كان المجلد موجودًا ، وإلا فإنه سيتم إنشاؤه تلقائيًا
قاتمة syslog
قاتمة tempname
tempname = التاريخ
syslog = temp & tempname & .log
اسم الملف هو e:/bbs/log/month/month.log
li = user &&& الآن && request.servervariables (remote_addr) && tempfile &&&&S letter && title
"تنسيق سجل ملف السجل هو: اسم المستخدم وإرسال الوقت و IP ومسار الملف ومسار الرسائل وعنوان الحروف
إذا كانت fs.filexists (syslog) ثم
تعيين ss = fs.opentextFile (syslog ، forappending ، صواب)
آخر
تعيين ss = fs.createTextFile (syslog ، forwriting ، false)
إنهاء إذا
تحقق ما إذا كان ملف السجل موجودًا.
Ss.Writeline (ل
أنا)
Ss.Close
'------------------------------------------- ------------------------------------------------- --------------------------
٪>
إذا كنت لا تفهم البرنامج أعلاه تمامًا ، فيرجى الاستماع إلى تعليمات المؤلف. يوفر مكون الوصول إلى الملف طرقًا وخصائصًا يمكن استخدامها للوصول إلى نظام ملفات الكمبيوتر. يمكننا استخدام مكون الوصول إلى الملف لإنشاء كائن FileSystemObject. بعد إنشاء الكائن ، يمكنك الوصول إلى الملف من خلاله. هناك طريقتان أكثر استخدامًا لكائن ملفات fileystemobject ، يتم استخدام واحدة لإنشاء الملفات ، والآخر يستخدم لفتح الملفات النصية وقراءة وكتابة. تحصل طريقة CreateTextFile على اسم الملف الذي حددته وينشئ الملف.
تعيين OBJTEXTSTREAM = fileystemObject.CreateTextFile (اسم الملف ، [الكتابة فوق] ، [Unicode])
سيشرح المؤلف معلمات طريقة CreateTextFile أدناه
1. اسم الملف الذي يحتوي على اسم مسار الملف هو اسم المسار الكامل للملف ، بما في ذلك اسم محرك الأقراص واسم الدليل ، أو يمكن أن يكون مجرد اسم ملف. في دليل الجذر للموقع.
2. الكمية المنطقية. سيتم حذف الاسم.
3. Unicode معلمات اختيارية. تشير القيم المنطقية إلى ما إذا كان سيتم إنشاء ملف بتنسيق ملف Unicode أو ASCII. تكون هذه القيمة صحيحة إذا تم إنشاء ملف بتنسيق ملف Unicode ، وكاذب إذا تم إنشاء ملف بتنسيق ملف ASCII. إذا تم حذف هذا القسم ، من المفترض أن يتم إنشاء ملف ASCII.
في البرنامج السابق ، نستخدم SET SS = FS.CreateTextFile (syslog ، forwriting ، false) لإنشاء ملف وكتابة ملف عندما لا يكون ملف السجل هنا.
على عكس طريقة CreateTextFile ، يتم استخدام طريقة OpenTextFile للحصول على اسم الملف الذي حددته وفتح الملف. حتى تتمكن من تشغيل الملف بعد فتحه. بناء جملة طريقة OpentExtFile هو كما يلي:
تعيين OBJTEXTSTREAM = fileystemObject.OpentExtFile (اسم الملف ، [iomode] ، [Create] ، [Format])
المعلمات كما يلي:
1. اسم الملف هو المتغير اللازم ، مثل اسم ملف CreateTextFile
2. IOMODE STETTORAL STANTER ، مع وجود قيمة واحدة من الثوابت التاليين أو forappending.
3. إنشاء كمية منطقية اختيارية ، تحديد العملية التي يتم إجراؤها إذا كان الملف الذي تريد فتحه غير موجود. إذا كانت رسالة الخطأ يتم إنشاؤها عند عدم العثور على الملف.
4. تنسيق القيمة الاختيارية ، يمكنك تحديد ثلاث قيم تريستات لتحديد تنسيق الملف ، على التوالي.
بعد فتح ملف نصي أو إنشاء ملف نصي ، يمكنك الحصول على كائن TextStream ، الذي يحتوي على مؤشر ، تمامًا مثل المؤشر في برنامج معالجة النصوص ، مما يشير إلى المكان الذي ستظهر فيه الحرف ، ويشير أيضًا إلى موقع الحرف الذي تريده للقراءة. لا يمكنك إنشاء كائن TextStream من خلال CreateBject.
يتم سرد خصائص وطرق كائن TextStream أدناه
TextStream.A
Tendofline الكمية المنطقية للقراءة فقط ، عندما يكون المؤشر في نهاية السطر الحالي ، تكون قيمته صحيحة ، وإلا فهي خاطئة
textstream.atendofstream الكمية المنطقية للقراءة فقط ، إذا كان المؤشر في نهاية الدفق ، فإن قيمته صحيحة ، وإلا فهي خاطئة
exctstream.column read-on-only integer ، وحساب عدد الأحرف من بداية السطر إلى موضع المؤشر الحالي
TECSTSTREAM.Line عدد صحيح القراءة فقط يشير إلى رقم سطر السطر في الملف بأكمله حيث يوجد المؤشر
TextStream.close () يغلق الدفق والملف النصي المقابل
يحدد TextStream.Read (NUM) أنه يتم قراءة عدد معين من الأحرف من الملف النصي الذي يبدأ من الموضع الحالي للمؤشر.
يقرأ TextStream.Readall () الدفق بأكمله في سلسلة
يقرأ TextStream.ReadLine () مجموعة كاملة من الأحرف في سلسلة
textstream.write (نص) اكتب سلسلة إلى الدفق
TextStream.Writeline () يكتب سلسلة نصية إلى الدفق
textstream.skip (num) في دفق ، حرك موضع المؤشر بعدد معين من أطوال السلسلة
textstream.skiplines () في تيار ، حرك المؤشر إلى عدد معين من الصفوف
TextStream.WriteBlank يكتب عددًا معينًا من الخطوط الفارغة إلى الدفق
خطوط (NUM)
أعتقد أن الجميع يمكن أن يشعروا بالوظائف القوية لمكون ملف ASP. إلى الخادم البعيد ، اقرأ الملف من خلال مكون الوصول إلى الملف ، وإنشاء صفحة HTML جديدة تلقائيًا ، دون الحاجة إلى العمل بجد لتحديث ملفات HTML واحدة تلو الأخرى. إذا كنت مهتمًا ، فيمكنك استخدام مكون الوصول إلى ملف ASP لكتابة مولد HTML التلقائي بالكامل للاستمتاع تمامًا بالشعور المتقدم والسهل بالحفاظ على موقع الويب.