PDA

View Full Version : چرا مقداری که به کوکی میدم داخلش نمی مونه؟



Mostafa_Sabeti
چهارشنبه 06 آذر 1387, 10:03 صبح
سلام به کد زیر توجه بکنید


ProtectedSub bEnter_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles bEnter.Click
lError.Text = ""
Dim dv AsNew System.Data.DataView
dv = dsLogIn.Select(New DataSourceSelectArguments)
If dv.Table.Rows.Count = 1 Then
Session("Op_UserName") = dv.Table.Rows(0)("UserName")
Session("Op_Password") = dv.Table.Rows(0)("Password")
Response.Redirect("~/Index.aspx")
EndIf
If HttpContext.Current.Request.Cookies("X") IsNothingThen
Dim cookie AsNew HttpCookie("X", 0)
cookie.Expires = Date.Now.AddMinutes(15)
Response.Cookies.Add(cookie)
EndIf
If Request.Cookies("X").Value >= 3 Then
lError.Text = "شما اجازه ورود به سیستم را ندارید"
ExitSub
EndIf
Request.Cookies.Item("X").Value += 1
lError.Text = "نام کاربری یا رمز عبور اشتباه است"
EndSub

توی کد فوق اگر نام کاربری و رمز عبور کاربر داخل دیتابیس وجود داشته باشه اون نام کاربری و رمز عبور توی سشن ذخیره شده و به صفحه اصلی ریدیرکت میکنه.
در ادامه اگر نام کاربری و رمز عبور وجود نداشت یک کوکی در صورت عدم وجود ایجاد میکنه.
بعد از اون اگه مقدار داخل کوکی از سه بیشتر شد اجازه ورود به کاربر داده نمیشه.
مشکل من قطعه کد Request.Cookies.Item("X").Value += 1 هستش. وقتی برنامه رو تریس کردم متوجه شدم که مقدار کوکی تغییر میکنه ولی هنگام اجرای دوباره کدها مقدار اون به حالت اول برگشته.:متفکر:

alishirazi
چهارشنبه 06 آذر 1387, 10:36 صبح
سلام دوست عزیز به جای

Request.Cookies.Item("X").Value += 1

از
Response.Cookies.Item("X").Value += 1


استفاده کن.

Mostafa_Sabeti
چهارشنبه 06 آذر 1387, 10:55 صبح
از Response.Cookies.Item("X").Value += 1 هم استفاده کردم ولی بازم در مقدار کوکی X تاثیری نمیگذاره یعنی مقدارش اضافه نمیشه

Mostafa_Sabeti
چهارشنبه 06 آذر 1387, 13:06 عصر
در ضمن یه مشکل دیگه هم با این کد دارم امیدوارم که پاسخ قانع کننده ای براش پیدا بشه
توی این کد به نظر میرسه، سشن با کوکی X هیچ ارتباطی ندارند ولی وقتی کاربر، نام کاربری و رمز عبور خودش را درست وارد کرد، آنگاه سشن ایجاد شده برای اون بعد از 15 دقیقه خالی میشه که قاعدتا نباید چنین اتفاقی بیافته.

alishirazi
چهارشنبه 06 آذر 1387, 13:23 عصر
ببین من یه پیشنهاد دیگه الان به ذهنم می رسه که فعلا مشکلت حل بشه.
اینکه اون لحظه که می خوای مقدار کوکی رو افزایش بدی یه بار کوکی رو از Request.Cookies بخونی بعد افزایش بدی بعد کوکی رو حذف کنی و بعد اضافه کنی با مقدار جدید
Response.Cookies.Remove و Response.Cookies.Add
از اینا استفاده کن، احتمالا مشکلت حل بشه فعلا.