الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عداد للزوار

بدأه souls913 في 9 نوفمبر 2008 · 8 رد · 1,618 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أريد أن اضع عداد للزوار في موقعي بحيث يكون عدد الزوار الكلي الذين زارو الموقع

وأنا ابرمج موقعي بلغة c#

وعلما أن قاعدة البيانات التي استخدمها هي الاكسس

وطبعا asp.net

ارجو مساعدتي بهالبرمجة البسيطة

وشكرا مقدما

#2

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

الاخ العزيز ، راجع الرابط التالي ففيه كود خاص بانشاء HIT COUNTER عداد زوار

http://aspnet101.com/aspnet101/tutorials.aspx?id=32

واذا واجهتك مشاكل في تطبيق المثال فأنا وجميع الاخوة على استعداد لمساعدتك لكن حاول أولا

وتقبل الاحترام والتقدير

تم تعديل هذه المشاركة بواسطة mshal في 9 نوفمبر 2008 في 01:41

#3

أنا قرأت المقال ولكني ضعت قليلا لم أعرف أين سأضع كل كود

كما أني استخدم لغة c#

والمقال بلغة vb

الرجاء توضيح مكان كل كود

#4

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

اخي العزيز أولا قم بفتح ملف في NotPad ولا تكتب فيه شيئا وقم بحفظه باسم Counter.ct طبعا تستطيع تغيير الاسم والامتداد مع تغيير الكود

بعد ذلك قم باستيراد الملف الى المجلد الرئيسي في موقعك أو اي مجلد تريده مع تعديل الكود

في الصفحة التي ستظهر العداد ستكون بالشكل كما في الصورة

post-173803-1226299864_thumb.jpg

اما عملية تحويلها من VB الى C# لا اتوقع ان تكون مشكلة فكل الاوامر الموجودة

هي اوامر بسيطة

وتقبل الاحترام والتقدير

أنا جرب الكود واشتغل تمام ، واضفت ايضا على الكود لتلافي مشكلة الملف لأول مرة كما في الصورة

#5

شكرا كتير على مساعدتك لي

طبقت المثال بلغة vb

وقد نجح معي تماما ولكن عندما قمت بتحويله الى c#

عن طريق مواقع التحويل..

طلع لي رسالة خطأ بهذا السطر

ct = (long)ct;

وعندي سؤال آخر أنا اصمم موقعي بحيث كل الصفحات تابعة للماستر بيج

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

حتى لو قمت بتطبيقه على الماستر بيج فإن عند انتقالي من صفحة الى أخرى يزداد العداد مع أني زائر واحد و عند انتقالي من صفحة الى أخرى يظل يزداد العداد

أي أن العداد يزداد بتصفحنا على كل صفحة وأنا أريد العداد يزداد للزائر فقط(يعرض العدد الكلي لزوار الموقع)

أعتقد بأن الحل لهالمشكلة هو وضع عداد على session

وليس على الصفحات

فهل لديك أخي العزيز أو اي من أخواننا الكرام مثال يطبق على session start

ويكون زيادة العداد على مستوى الموقع ككل وليس على مستوى الصفحات

واذا أمكن باللغة c#

وقاعدة البيانات هي الاكسس

#6

السلام عليكم

اتصور افضل شيء وضع هذا الكود في Session_Start عن طريق اضافة ملف global.asax

يمكن انشاء جدول في قاعدة البيانات مثل tblCounter ووضع حقل وحيد به مثلا counter بعد ذلك يتم زيادة هذا العداد في كل مرة يتم الدخول الى الموقع عن طريق الاستعلام

update tblCounter set counter=counter+1

#7

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

اخي العزيز سأقوم بشرح ما ذكره الاخ طارق مشكورا

اولا نقوم باضافة ملف global.asax الى المشروع

post-173803-1226399335_thumb.jpg

ثم سأقوم بتوزيع الكود في الملف كما يلي :

post-173803-1226399392_thumb.jpg

post-173803-1226399460_thumb.jpg

اخيرا في الصفحة التي سأعرض بها العداد ساكتب الكود التالي

post-173803-1226399496_thumb.jpg

لاحظ اننا استخدمنا حدث Session_Start

والذي سيطبق فقط عند بدء الجلسة

هذا المثال كما في السابق يخزن العداد في ملف واذا اردتها في قاعدة بيانات بامكانك تطبيق نفس الفكرة

مسألة تحويل الكود الى C# اتركها لك لأنني لا املك المعرفة الكاملة

الشكر الاول والاخير للأخ طارق

تقبل تحياتي

#8

عزيزي

ظهرت لي رسالة خطأ عند تنفيذ الكود تتعلق بالسطر التالي:

ct=clng(ct)

اقتباس
Conversion from string "" to type 'Long' is not valid

بحثت ولم أجد حل لها !

تم تعديل هذه المشاركة بواسطة تمرد إلكترون في 31 ديسمبر 2008 في 13:30

#9

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

ملف Glabal.ascx

<%@ Application Language="C#" %>

<script runat="server">

	void Application_Start(object sender, EventArgs e) 
	{
		// Code that runs on application startup

		Application.Add("UserCounter", 0);


	}

	void Application_End(object sender, EventArgs e) 
	{
		//  Code that runs on application shutdown

	}

	void Application_Error(object sender, EventArgs e) 
	{ 
		// Code that runs when an unhandled error occurs

	}

	void Session_Start(object sender, EventArgs e) 
	{
		// Code that runs when a new session is started


		int UsrCounters = int.Parse(Application.Get("UserCounter").ToString());
		UsrCounters++;
		Application.Set("UserCounter", UsrCounters);


	}

	void Session_End(object sender, EventArgs e) 
	{
		// Code that runs when a session ends. 
		// Note: The Session_End event is raised only when the sessionstate mode
		// is set to InProc in the Web.config file. If session mode is set to StateServer 
		// or SQLServer, the event is not raised.

		int UsrCounters = int.Parse(Application.Get("UserCounter").ToString());
		UsrCounters--;
		Application.Set("UserCounter", UsrCounters);

	}

</script>

defaul.aspx.cs

protected void Page_Load(object sender, EventArgs e)
	{


		Label1.Text = Application.Get("usercounter").ToString();
	}


مطور مواقع وتطبيقات الانترنت 


PHP

CodeIgniter , jQuery,AJAX ,CSS Coder

مطور تطبيقات الايفون والاندرويد

مدونتي الخاصة

مواضيع مشابهة