PDA

View Full Version : سوال: مشکل در آمار بازدید از سایت



danijoon
دوشنبه 22 شهریور 1389, 18:03 عصر
سلام
من یک سیستم آمار سایت پیدا کردم که این تا بیست دقیقه درست کار می کنه اما بعدش(اتمام سیشن تام اوت)ریست میشه
تو گلوبال :
void Application_Start(object sender, EventArgs e)
{

Application["uo"] = 0;
Application["ut"] = 0;
Application["utoday"] = 0;
// Code that runs on application startup

}



void Session_Start(object sender, EventArgs e)
{
//klole bazdidha
int j = int.Parse(Application["ut"].ToString()) + 1;
Application["ut"] = j;
//online
int i =int.Parse( Application["uo"].ToString()) + 1;
Application["uo"] = i;
//emruz
int k = int.Parse(Application["utoday"].ToString()) + 1;
Application["utoday"] = k;
//logins

// Code that runs when a new session is started

}


void Session_End(object sender, EventArgs e)
{

int i = int.Parse(Application["uo"].ToString()) - 1;
Application["uo"] = i;}


تو مستر پیجم:

protected void Page_Load(object sender, EventArgs e)
{
تاریخ ورودstring aa = DateTime.Now.Day.ToString();
string bb = Application["ut"].ToString();
string cc = Application["utoday"].ToString();
Label1.Text = aa;
Label2.Text = bb;
Label3.Text = cc;
Label6.Text = Application["uo"].ToString();

واسه نشون دادن ریختم تو لیبل
اینجا من مقادیر رو میریزم تو دیتا بیس:

DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectAr guments.Empty);
if (dv.Table.Rows.Count > 0)
{

string sa = dv.Table.Rows[0]["lasthit"].ToString();
if (sa != aa)اگر مقادیر برابر نبود یعنی مقدار قبلی ماله دیروزه . واسه کاربران امروز
{
Application["utoday"] = "1";
SqlDataSource1.Update();


(تو دستور آپدیتش:
UpdateCommand="UPDATE useronline SET lasthit = @a, hits = @b, todayhit = @c"

<UpdateParameters>
<asp:ControlParameter ControlID="Label1" Name="a" PropertyName="Text" />
<asp:ControlParameter ControlID="Label2" Name="b" PropertyName="Text" />
<asp:ControlParameter ControlID="Label3" Name="c" PropertyName="Text" />
(

}
else
{
SqlDataSource1.Update();

}
}

roomezonline
سه شنبه 23 شهریور 1389, 11:24 صبح
وقعا کسی نمی دونه این کد چه شه؟:متفکر:

دوست عزیز اگر میخواهی کسی کمک کنه
اون قسمت مورد نظر رو بذار . یا در قالب یه پروژه بذار که راحتر بشه عیب یابی کرد . شما 20 خط کد گذاشتی مسلم هست کسی اینطوری نمیتونه کمکتون کنه . در قالب یک پروژه بذار تا چک کنیم و جواب رو انشالله پیدا کنیم

danijoon
سه شنبه 23 شهریور 1389, 12:14 عصر
اینم کدش اما من 1 دیتا بیس هم دارم که به نام useronline که مقادیر hits & lasthit & todayhitرو توش نگه می دارم واسه اینکه تعداد کاربران امروز و کاربران کل رو بدونم
ممنون

vzsoft
سه شنبه 23 شهریور 1389, 14:44 عصر
سلام

اگه منظورت و درست متوجه شده باشم وقتی برنامه رست میشه داده ها می پرن

برای ذخیره لیست از این رویداد استفاده کن



void Application_End(object sender, EventArgs e)
{
//save Application to database
}

برای بازیافت از این



void Application_Start(object sender, EventArgs e)
{
//load database to Application
}

danijoon
سه شنبه 23 شهریور 1389, 17:45 عصر
وقتی ریست میشه نه
وقتی مدت زمان سیشن که تعریف شده 20 دقیقه تمام میشه همه ریست میشه