عرض مشاركة واحدة
عضو نشيط
تاريخ التسجيل: Jun 2006-
#1 (permalink)  
طريقة عمل عداد زوار (كلي) للموقع باستخدام السيشن وملف نصي


طريقة عمل عداد زوار للموقع

السلام عليكم ورحمة الله وبركاته

هذه طريقة عمل عداد زوار كلي للموقع باستخدام ملف نصي
العداد يقوم بحسب كل زيارة للموقع على انها زيارة واحده - مثلا لو دخلت انت الموقع وتجولت فيه وتنقلت في كل صفحات الموقع
وبقيت ساعات طويله لن يحسب الا زيارة واحد لك وعند خروجك من الموقع نهائيا واقفال كل صفحاته ومن ثم العوده له من جديد فيحسب لك زيارة جديده وهكذا

العداد يعتمد على السيشن
Session
وعلى ملف نصي لتخزين عدد الزيارت فيه

بسم الله نبدأ

قم بعمل ملف نصي جديد في داخل مجلد الموقع سميه مثلا
كود:
HitCounter.Txt
وهذا الملف سوف يحتوي على رقم الزوار للموقع

الان نريد كل ما يدخل زائر جديد للموقع نروح لهذا الملف نجيب الرقم الموجود به اصلا
ومن ثم نزيد على هذا الرقم رقم واحد يعني لو كان 20 نعمله 21
وبعد هذا نرجع نخزن الرقم الجديد في الملف وهكذا يكون عندنا عدد الزوار داخل الملف

في ملف
كود:
Global.asax
وتحديدا في دالة بداية السيشن وهي الدالة التي يتم تطبيق محتواها عند دخول لك للموقع
يعني بداية جلستك في الموقع وهذه هي الدالة

كود:
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' هنا نكتب الكود
End Sub
راجع هذا الدرس عن السيشن
http://www.swalif.net/softs/showthread.php?t=159868



في داخل دالة تعريف السيشن نقوم اولا بفتح الملف النصي الخاص بعداد الزوار
بعد هذا نجلب الرقم الموجود فيه ونخزنه في متغير من نوع رقم
وبعد هذا نقوم بزيادة الرقم ومن ثم نعود ونخزن الرقم الجديد في الملف مرة ثانيه

هذا هو الكود

كود:
'جلب رقم عداد الزوار الموجود في ملف عداد الزوار HitCounter
        'ومن ثم زيادة الرقم الموجود في الملف رقم واحد واعادة تخزين الرقم الجديد

        'جلب عدد الزوار الموجود حاليا في الملف وتخزيه في متغير من نوع رقم طويل

        Dim HitCounterR As New IO.StreamReader("C:\HitCounter.txt")
        Dim HitCounter As Long = CLng(HitCounterR.ReadToEnd())
        HitCounterR.Close()

        'زيادة رقم واحد على المتغير الموجود بعدد الزواؤ
        HitCounter = HitCounter + 1

        'اعادة تخزين الرقم الجديد لعدد الزوار في الملف النصي
        Dim HitCounterW As New IO.StreamWriter("C:\HitCounter.txt")
        HitCounterW.Write(HitCounter)
        HitCounterW.Close()
لاحظ اننا في هذا السطر
كود:
Dim HitCounter As Long = CLng(HitCounterR.ReadToEnd())
عرفنا متغير من نوع رقم طويل وقمنا بتغزين محتوى الملف في داخله
ولكن قبل التخزين قمنا بتحويل محتوى الملف لرقم لانه في الاصل يكون من نوع نص
حولناه باستخدام دالة التحويل
CLng

لاحظ كذلك في هذا السطر
كود:
Dim HitCounterR As New IO.StreamReader("C:\HitCounter.txt")
وفي هذا السطر
كود:
Dim HitCounterW As New IO.StreamWriter("C:\HitCounter.txt")
في الاول قمنا بقرائة الملف لاحظ مسار الملف هذا لازم تعدله لكي يتناسب مع مكان الملف على الجهاز
وفي السطر الثاني كذلك كتبنا في الملف ولازم تعدل المسار كذلك





الان يكون عندنا عداد الزوار جاهز في ملف نصي


نقوم بعمل صفحة جديده في موقعنا لعرض عداد الزوار مثلا نسميها
كود:
hitcounter.aspx
في حدث تحميل الصفحة نقوم بجلب عدد الزوار المجود في الملف النصي
تحديدا في دالة تحميل الصفحة
كود:
Private Sub Page_Load
نجلب عدد الزوار من الملف النصي

كود:
'جلب عدد الزوار الموجود حاليا في الملف وتخزيه في متغير
        Dim HitCounterR As New IO.StreamReader(SitePath & "\HitCounter.txt")
        Dim HitCounter As String = HitCounterR.ReadToEnd()
        HitCounterR.Close()
الان عندنا عداد الزوار مخزن في متغير اسمه
كود:
HitCounter
تقدر تطبعه او تكتبه في المكان الي تحب ولكن الافضل اننا نرجع نرسم هذا الرقم على شكل صورة
راجع هذا الدرس لمعرفة طريقة الرسم
http://www.swalif.net/softs/showthread.php?t=162296


وهذا هو كود رسم العدد على شكل صورة

كود:
'عرض عداد الزوار باسلوب صورة مرسومه بشكل مميز
        Dim imgNew As System.Drawing.Image = New Bitmap(1, 1)
        Dim gc As Graphics = Graphics.FromImage(imgNew)
        Dim font As Font = New Font("Verdana", 12, FontStyle.Underline)
        Dim size As SizeF = gc.MeasureString(HitCounter, font)
        Dim width As Integer = CType(size.Width, Integer) + 1
        Dim height As Integer = CType(size.Height, Integer) + 1
        imgNew = New Bitmap(width, height)
        gc = Graphics.FromImage(imgNew)
        gc.FillRectangle(Brushes.White, 0, 0, width, height)
        gc.DrawString(HitCounter, font, Brushes.Black, 0, 0)
        imgNew.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)

لاحظ اناا رسمنا المتغير الي اسمه
كود:
 HitCounter
وهو المتغير الي جلبنا في داخله عدد الزوار من الملف النصي

يعني حدث تحميل الصفحة الي سنعرض بها عداد الزوار الكود فيه يكون بالكامل هكذا

كود:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Put user code to initialize the page here

        'جلب عدد الزوار الموجود حاليا في الملف وتخزيه في متغير
        Dim HitCounterR As New IO.StreamReader(SitePath & "\HitCounter.txt")
        Dim HitCounter As String = HitCounterR.ReadToEnd()
        HitCounterR.Close()

        'عرض عداد الزوار باسلوب صورة مرسومه بشكل مميز
        Dim imgNew As System.Drawing.Image = New Bitmap(1, 1)
        Dim gc As Graphics = Graphics.FromImage(imgNew)
        Dim font As Font = New Font("Verdana", 12, FontStyle.Underline)
        Dim size As SizeF = gc.MeasureString(HitCounter, font)
        Dim width As Integer = CType(size.Width, Integer) + 1
        Dim height As Integer = CType(size.Height, Integer) + 1
        imgNew = New Bitmap(width, height)
        gc = Graphics.FromImage(imgNew)
        gc.FillRectangle(Brushes.White, 0, 0, width, height)
        gc.DrawString(HitCounter, font, Brushes.Black, 0, 0)
        imgNew.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)


    End Sub

الان يكون عندنا العداد موجود في صفحة خاصة به ومعروض على شكل صورة تقدر تستخدمه في اي مكان في الموقع من خلال تضمين صفحة العداد باستخدام الفريم


واعذروووني على الاخطاء الاملائيه اذا كانت موجوده لكن انا متأكد انها موجوده وبكثره غالبا
لاني قاعد اطبع بسرعه واكيد صار معي اخطاء في الطباعه ان شاء الله ماتكون كثيره


في امان الله وحفظة






__________________
احنا بكل فخر واخلاص باغة باروده ورصاص
وصقور تحب المقناص بجو الأردن عاليه
وفوق الأردن عاليه ........
nothing4u غير متواجد حالياً   قديم 13-07-2006, 12:42 PM
رد مع اقتباس