bftarane
دوشنبه 07 بهمن 1392, 16:47 عصر
من چند تا جدول دارم مثل
اخبار،
افراد مفوق
و...
که باید در صفحه جزئیات هر خبر و هر مطلب
دکمه لایک رو بزارم
کاری که کردم این بوده
که با کلیک روی دکمه لایک
تست می کنه آیا یه کوکی به اسم جدولم وجود داره یا نه
اگه نداشت ایجاد میشه و آی دی خبر توش درج میشه
مثلاً 1
اگه کوکی وجود داشته باشه
چک می کنه ببینه آیا id در کوکی وجود داره یا نه
اگه وجود داشت پیغام میده شما قبلاً لایک کردید این خبر یا مطلب رو
و اگه وجود نداشت id رو به id های قبلی اضافه می کنه
یعنی به ازای فرضاً 4 جدول 4 کوکی ساخته میشه
و در هر کوکی هم id هایی که کاربر اونا رو لایک کرده ذخیره میشه
حالا می خواستم بدونم آیا سناریوی بهتری به نظرتون می رسه؟
ممنون می شم همفکری کنید
اینم کدهای تا اینجای کار
DALBase DBase = new DALBase();
protected void Page_Load(object sender, EventArgs e)
{
}
//protected void btn_like_Click(object sender, EventArgs e)
//{
//}
public static bool Exists(string key, string[] keylist)
{
foreach (string item in keylist)
if (key == item)
return true;
return false;
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if (Request.Cookies["MyCookieName"] != null)
{
string MyCookieValue = Request.Cookies["MyCookieName"].Value;
string[] arr = MyCookieValue.Split(',');
bool isExist = Exists(Request.QueryString["ID"], arr);
string NewMyCookieValue = MyCookieValue;
if (isExist)
{
Page.ClientScript.RegisterStartupScript(GetType(), "Javascript", "<script>alert('You like this subject one time')</script>");
}
else
{
//string expire = Response.Cookies["MyCookieName"].Expires.ToString();
//Response.Cookies["MyCookieName"].Value = "new";
//Response.Cookies["MyCookieName"].Expires =Convert.ToDateTime( expire);
HttpCookie aCookie;
aCookie = new HttpCookie("MyCookieName");
aCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(aCookie);
HttpCookie MyGreatCookie = new HttpCookie("MyCookieName");
NewMyCookieValue += "," + Request.QueryString["ID"];
MyGreatCookie.Value = NewMyCookieValue;
MyGreatCookie.Expires = DateTime.Now.AddDays(7);
Response.Cookies.Add(MyGreatCookie);
DBase.ExecuteNoneQuery(System.Data.CommandType.Tex t, "update Table1 set Likes = Likes+1 where ID=@ID", new OleDbParameter[]{
new OleDbParameter("@ID",Request.QueryString["ID"])
});
}
}
else
{
HttpCookie MyGreatCookie = new HttpCookie("MyCookieName");
MyGreatCookie.Value = Request.QueryString["ID"];
MyGreatCookie.Expires = DateTime.Now.AddDays(7);
Response.Cookies.Add(MyGreatCookie);
DBase.ExecuteNoneQuery(System.Data.CommandType.Tex t, "update Table1 set Likes = Likes+1 where ID=@ID", new OleDbParameter[]{
new OleDbParameter("@ID",Request.QueryString["ID"])
});
}
GetLikes();
}
public void GetLikes()
{
OleDbDataReader dr = DBase.ExecuteReader(System.Data.CommandType.Text, "select Likes from Table1 where ID=@ID", new OleDbParameter[]{
new OleDbParameter("ID",Request.QueryString["ID"])
});
if (dr.Read())
{
Label1.Text = dr["Likes"].ToString();
}
}
اخبار،
افراد مفوق
و...
که باید در صفحه جزئیات هر خبر و هر مطلب
دکمه لایک رو بزارم
کاری که کردم این بوده
که با کلیک روی دکمه لایک
تست می کنه آیا یه کوکی به اسم جدولم وجود داره یا نه
اگه نداشت ایجاد میشه و آی دی خبر توش درج میشه
مثلاً 1
اگه کوکی وجود داشته باشه
چک می کنه ببینه آیا id در کوکی وجود داره یا نه
اگه وجود داشت پیغام میده شما قبلاً لایک کردید این خبر یا مطلب رو
و اگه وجود نداشت id رو به id های قبلی اضافه می کنه
یعنی به ازای فرضاً 4 جدول 4 کوکی ساخته میشه
و در هر کوکی هم id هایی که کاربر اونا رو لایک کرده ذخیره میشه
حالا می خواستم بدونم آیا سناریوی بهتری به نظرتون می رسه؟
ممنون می شم همفکری کنید
اینم کدهای تا اینجای کار
DALBase DBase = new DALBase();
protected void Page_Load(object sender, EventArgs e)
{
}
//protected void btn_like_Click(object sender, EventArgs e)
//{
//}
public static bool Exists(string key, string[] keylist)
{
foreach (string item in keylist)
if (key == item)
return true;
return false;
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if (Request.Cookies["MyCookieName"] != null)
{
string MyCookieValue = Request.Cookies["MyCookieName"].Value;
string[] arr = MyCookieValue.Split(',');
bool isExist = Exists(Request.QueryString["ID"], arr);
string NewMyCookieValue = MyCookieValue;
if (isExist)
{
Page.ClientScript.RegisterStartupScript(GetType(), "Javascript", "<script>alert('You like this subject one time')</script>");
}
else
{
//string expire = Response.Cookies["MyCookieName"].Expires.ToString();
//Response.Cookies["MyCookieName"].Value = "new";
//Response.Cookies["MyCookieName"].Expires =Convert.ToDateTime( expire);
HttpCookie aCookie;
aCookie = new HttpCookie("MyCookieName");
aCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(aCookie);
HttpCookie MyGreatCookie = new HttpCookie("MyCookieName");
NewMyCookieValue += "," + Request.QueryString["ID"];
MyGreatCookie.Value = NewMyCookieValue;
MyGreatCookie.Expires = DateTime.Now.AddDays(7);
Response.Cookies.Add(MyGreatCookie);
DBase.ExecuteNoneQuery(System.Data.CommandType.Tex t, "update Table1 set Likes = Likes+1 where ID=@ID", new OleDbParameter[]{
new OleDbParameter("@ID",Request.QueryString["ID"])
});
}
}
else
{
HttpCookie MyGreatCookie = new HttpCookie("MyCookieName");
MyGreatCookie.Value = Request.QueryString["ID"];
MyGreatCookie.Expires = DateTime.Now.AddDays(7);
Response.Cookies.Add(MyGreatCookie);
DBase.ExecuteNoneQuery(System.Data.CommandType.Tex t, "update Table1 set Likes = Likes+1 where ID=@ID", new OleDbParameter[]{
new OleDbParameter("@ID",Request.QueryString["ID"])
});
}
GetLikes();
}
public void GetLikes()
{
OleDbDataReader dr = DBase.ExecuteReader(System.Data.CommandType.Text, "select Likes from Table1 where ID=@ID", new OleDbParameter[]{
new OleDbParameter("ID",Request.QueryString["ID"])
});
if (dr.Read())
{
Label1.Text = dr["Likes"].ToString();
}
}