PDA

View Full Version : سوال: راهنمایی در مورد مراحل ایجاد امار بازدید سایت



mohsen.nsb44
چهارشنبه 14 تیر 1391, 12:38 عصر
سلام از دوستان تقاضا دارم که در این تاپیک همکاری کنن و نحوه ایجاد امار سایت رو بدون استفاده از کامپوننت ها اموزش بدن
خب قدم اول بازدید کل سایت است که براحتی میشه از طریق مراحل زیر انجام داد
اول بگم که من یک جدول به نام userAmar گرفتم و فیلد هایی به صورت زیر از نوع عددی را دارا میباشد
today , yesterday, week , mounth,year,total
خب حالا در گلوبال در Session_Start کد زیر رو نوشتم برای بازدید کل


if (Application["Tcount"] == null)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["connectionstring"].ConnectionString;
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from userAmar";
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
DataSet ds = new DataSet();
da.SelectCommand = cmd;
da.Fill(dt);
Application["Tcount"] = dt.Rows[0][6];
}

و کد زیر رو در متد load صفحه نوشتم



int Tcount;
//int count;
Application.Lock();
Tcount = (int)Application["Tcount"];
//count = (int)Application["count"];
//count += 1;
Tcount += 1;
insertTotal(Tcount);
Application["Tcount"] = Tcount;
//Application["count"] = count;
Application.UnLock();

lblTotal.Text = Tcount.ToString();



protected void insertTotal(int total)
{

SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["connectionstring"].ConnectionString;
SqlCommand cmd = new SqlCommand("S_insert_amar", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@total", total);


con.Open();
cmd.ExecuteNonQuery();
con.Close();


return;
}

خب این کد به درستی کار میکنه حالا نوبت بازدید امروز هستش که کارش شبیه همین کد هستش با این تفاوت که به روز بعد رفتیم باید یکبار مقدار اولیش صفر بشه بعد مراحل فوق مثل امار کل سایت به اون اضافه بشه حالا سوال من اینجاست که چطور میتونم اینکارو بکنم یعنی فقط یکبار عمل صفر شدن کد امروز و بقیه ماجرا در ضمن فقط یکبار هم باید مقدار بازدید امروز به دیروز منتقل بشه
لطفا راهنمایی بکنید تا هم بنده و هم سایر دوستان بتوانیم بازدید سایت را برای خود داشته باشیم

saeed_sho
چهارشنبه 14 تیر 1391, 15:12 عصر
سلام
شما اینجوری که میخوای آمار رو از امروز منتقل کنی به دیروز و هفته و ماه داری پیچیده میکنی
شما فقط آمار هر روز رو ذخیره کنید و در هر insert بررسی کنید که برای امروز رکوردی وجود داره یا نه (تاریخ امروز رو با تاریخ رکوردها مقایسه کنید) اگه نداشت رکورد رو اضافه میکنی اگه رکورد وجود داشت اونو آپدیت میکنی
برای اون قسمتی که آمار رو نشون میدی هم یک یوزر کنترل بزارید و در اون یک detailsview یا هر کنترلی که میخوای میزاری و در رویداد لود یوزر کنترل از دیتابیس select بزن هم برای امروزت و هم برای رکورد دیروز و بدین ترتیب هفته و ماه رو بدست بیار البته فرمولش هم که حتما بلدین
بدین صورت هربا که صفحه لود میشه یوزر کنترل هم لود میشه
موفق باشی

alonemm
چهارشنبه 14 تیر 1391, 15:59 عصر
باسلام:

چندی قبل یک مقاله آموزشی با نام ساخت باکس تعداد بازدید کنندگان سایت (http://barnamenevis.org/showthread.php?269921-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3-%D8%AA%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF-%DA%A9%D9%86%D9%86%D8%AF%DA%AF%D8%A7%D9%86-%D8%B3%D8%A7%DB%8C%D8%AA) در تالار PHP گزاشتم که بازدید امروز - دیروز - کل رو نمایش میده.

زبان برنامه نویسی PHP هست میتونید با برسی نحوه کار کرد توابع به پیاده سازی در ASP.net بپردازید.
توجه داشته باشید که در این پروژه فقط 1 رکورد از پایگاه داده برای ذخیره استفاده میشود.

اگر نیاز به راهنمایی بود مطرح کنید.

موفق باشید.

mohsen.nsb44
چهارشنبه 14 تیر 1391, 17:03 عصر
دوستان ممنون از نقطا نظراتتون اما همانطور که از اسم این تاپیک پیداست میخوام شما دوستان کمک کنید تا از این پروژه همه استفاده بکنند پس اگه با کد و مثال ایده هاتون رو پیاده سازی کنین ممنون میشم

saeed_sho
چهارشنبه 14 تیر 1391, 17:46 عصر
اون مشکل معروف که بعد از بستن مرورگر باید صبر کنی تا سشن باطل بشه با این کدها قابل حله
http://www.dotnetspeaks.com/DisplayArticle.aspx?ID=12

mohsen.nsb44
پنج شنبه 15 تیر 1391, 10:24 صبح
خب میشه بگین بهترین راه حل برای ایجاد بازدید امروز دیروز هفته و ماه چیست؟

neda555
پنج شنبه 15 تیر 1391, 10:41 صبح
سلام دوستان
1.ابتدا شما باید یه جدول در دیتابیس برای نگه داری آمار در نظر بگبرید و یه تابع برای درج session_ID و زمان ورود فرد
2.مثلا قراره بازدید امروز را نشون بدید شما باید در session_startبا PersianCalendar زمان سیستم را بریزید در یک متغیر و با همون تابع درج این زمان و sessionID را درج کنید در جدولتون
3.در صفحه ای که قراره آمار را نشون بدین مقایسه انجام بدین برای امروز و ماه و ...

saeed_sho
پنج شنبه 15 تیر 1391, 15:36 عصر
ندا خانم اگه کاربر تب جدیدی باز کرد چی؟
اگه تب جدید رو بست چی؟
اگه مرورگر رو بست چی؟
اگه روی لینک کلیک کرد چی؟
جواب این چهار تا کار رو چطوری میشه فهمید
اون لینکی که من گذاشتم فهمیدم که فقط موقع بستن مرورگر جواب میده و برای بستن تب جواب نمیده تازه در فایرفاکس هم جواب نمیده
این چهارتا سؤال برام کابوس شده باید جوابشو زود بفهمم

saeed_sho
پنج شنبه 15 تیر 1391, 17:09 عصر
این آمار بازدیدها در هر سایتی که میری و میبینی رو چطوری درست میکنند؟
این موضوع رو در نظر بگیرید که آمار باید در سایت های پر بازدید جوابگو باشه
جواب چهار تا سؤال تاپیک قبلی هم باید در نظر گرفته بشه
لطفا اگه دوستان اطلاعاتی دارن دریغ نکنند

mohsen.nsb44
پنج شنبه 15 تیر 1391, 17:19 عصر
یه مشکلی که به نظرم میاد اینه که تاریخ مثل dateTime.Now تاریخ سیستم رو نشون میده اگه تاریخ یک سیستم اشتباه باشه امار اشتباهی بهش نمایش داده میشه

saeed_sho
پنج شنبه 15 تیر 1391, 17:35 عصر
یعنی توی این گیرو دار که همه ی فکرمون پیش سشن و مشکلاتش هست بیایم تاریخ رو با جاوا اسکریپت از کاربر بگیریم؟
اگه تاریخ چندتا از این همه کاربر درست نباشه که دیگه هیچی بهترین راه اینه که تاریخ رو از سمت سرور بگیریم اینجوری یه سیستم تاریخشو درست کنه کار حله
راستش من همیشه هم تاریخ و هم ساعت سیستمم تا دقیقه شم درسته به خاطر همین چیزی که شما میگین برام عجیبه

mohsen.nsb44
پنج شنبه 15 تیر 1391, 19:11 عصر
خب باید همه جوانبو سنجید بعد شروع به پیاده سازی کرد تا یک سیستم اماری بدون ایراد طراحی کرد

saeed_sho
پنج شنبه 15 تیر 1391, 19:20 عصر
دوست عزیز این مشکل ساعت که چیزی نیست اونو به مدیر یا مسؤول سرور میزبان تذکر میدن و یادآوری میکنند درست میکنه
شما مشکل تب ها و لینک ها رو دریاب

saeed_sho
پنج شنبه 15 تیر 1391, 19:26 عصر
آقا محسن شرمنده منم توی تاپیک شما نظرات و درخواست هامو میدم آخه موضوع مشترکه و اگه برم و یه تاپیک با همین موضوع بزنم آقای رزیئی میاد پاک میکنه و میگه تکراریه
کسی هم که توی این تاپیک مشارکت نمیکنه یعنی هیچ کس تا حالا این کارو نکرده؟

neda555
شنبه 17 تیر 1391, 12:01 عصر
ببخشید من درست متوجه نشدم منظورتون را خب مگه چه مشکلی پیش میاد؟اگر منظور شما اینه که یه کاربر که یه بار وارد شد و سایت را بست دوباره وارد شد نباید به شمارنده اضافه بشه باید بگم تا جایی که من دیدم آمار سایت ها را اضافه میشه... حالا چه تب جدید باز کنی چه لینک و ...
لطفا بیشتر توضیح بدین


ندا خانم اگه کاربر تب جدیدی باز کرد چی؟
اگه تب جدید رو بست چی؟
اگه مرورگر رو بست چی؟
اگه روی لینک کلیک کرد چی؟
جواب این چهار تا کار رو چطوری میشه فهمید
اون لینکی که من گذاشتم فهمیدم که فقط موقع بستن مرورگر جواب میده و برای بستن تب جواب نمیده تازه در فایرفاکس هم جواب نمیده
این چهارتا سؤال برام کابوس شده باید جوابشو زود بفهمم