asp.net关于Cookie的有关问题
asp.net关于Cookie的问题
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Welcome : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
HttpCookie userCookie = new HttpCookie("userCookie");
if (Request.Cookies["userCookie"] != null)
{
userCookie.Values["counts"] = Convert.ToString((Convert.ToInt32(Request.Cookies["userCookie"].Values["counts"].ToString()) + 1));
lblWelcome.Text = Request.Cookies["userCookie"].Values["userName"].ToString();
lblWelcome0.Text = Request.Cookies["userCookie"].Values["lastVist"].ToString();
lblWelcome1.Text = Request.Cookies["userCookie"].Values["counts"].ToString();
}
else
{
lblWelcome.Text = "恰嬉猫";
userCookie.Values["counts"] = "1";
}
userCookie.Values["lastVist"] = DateTime.Now.ToString();
userCookie.Expires = DateTime.Now.AddDays(30);
userCookie.Values["userName"] = "恰嬉猫";
userCookie.Values["lastVist"] = DateTime.Now.ToString();
Response.Cookies.Add(userCookie);
}
}
}
为什么这样能统计访问人数?
不是没NEW一个cookies,就覆盖前面了的吗?
为什么人数还是会增加?
------解决方案--------------------
从Request.Cookies["userCookie"].Values["counts"]读出现有的人数,+1后赋值给New出来的Cookie了
------解决方案--------------------
cookie是写在浏览器端的。也就说,如果有1000人访问,就有1000个不同的cookie。
这个代码是哪个人给你写的?如果是跟你收费的培训班给你写的代码,赶紧退学费,可以肯定他们不是真正“干过”的。
------解决方案--------------------
这个代码根本不能“统计人数”,但是对于只会在自己的单机上瞎编代码的人,可能可以自欺欺人!其机制就是:它是统计
if (IsPostBack)
条件成立的次数,跟人数无关。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Welcome : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
HttpCookie userCookie = new HttpCookie("userCookie");
if (Request.Cookies["userCookie"] != null)
{
userCookie.Values["counts"] = Convert.ToString((Convert.ToInt32(Request.Cookies["userCookie"].Values["counts"].ToString()) + 1));
lblWelcome.Text = Request.Cookies["userCookie"].Values["userName"].ToString();
lblWelcome0.Text = Request.Cookies["userCookie"].Values["lastVist"].ToString();
lblWelcome1.Text = Request.Cookies["userCookie"].Values["counts"].ToString();
}
else
{
lblWelcome.Text = "恰嬉猫";
userCookie.Values["counts"] = "1";
}
userCookie.Values["lastVist"] = DateTime.Now.ToString();
userCookie.Expires = DateTime.Now.AddDays(30);
userCookie.Values["userName"] = "恰嬉猫";
userCookie.Values["lastVist"] = DateTime.Now.ToString();
Response.Cookies.Add(userCookie);
}
}
}
为什么这样能统计访问人数?
不是没NEW一个cookies,就覆盖前面了的吗?
为什么人数还是会增加?
------解决方案--------------------
从Request.Cookies["userCookie"].Values["counts"]读出现有的人数,+1后赋值给New出来的Cookie了
------解决方案--------------------
cookie是写在浏览器端的。也就说,如果有1000人访问,就有1000个不同的cookie。
这个代码是哪个人给你写的?如果是跟你收费的培训班给你写的代码,赶紧退学费,可以肯定他们不是真正“干过”的。
------解决方案--------------------
这个代码根本不能“统计人数”,但是对于只会在自己的单机上瞎编代码的人,可能可以自欺欺人!其机制就是:它是统计
if (IsPostBack)
条件成立的次数,跟人数无关。