نمایش نتایج 1 تا 22 از 22

نام تاپیک: نحوه ذخیره اطلاعات حتی در صورت بسته شدن صفحه

  1. #1
    کاربر دائمی آواتار arsalansalar
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    اتاق آبی
    پست
    974

    نحوه ذخیره اطلاعات حتی در صورت بسته شدن صفحه

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

  2. #2
    از سشن استفاده کنید ! همین ;-)

  3. #3
    کاربر دائمی آواتار arsalansalar
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    اتاق آبی
    پست
    974
    راستش من این تایپیک و دیدم:
    https://barnamenevis.org/showthread.php?t=105457
    ولی اون چیزی که من می خواهم نیست.
    در واقع من نمی دانم چیئ در sesion ذخیره کنم که آن را به عنوان کلید نگه دارم که بعدا از آن استفاده کنم.
    اگر شما تجربه این کار را دارید می شود لطف کنید و آن را در اختیار من بگزارید؟

  4. #4
    کاربر دائمی آواتار arsalansalar
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    اتاق آبی
    پست
    974
    دوست عزیز من یا استفاده از کدهای شما که در زیر آمده است تقریبا یک برنامه نوشتم.
    ولی مشکل من این است که با بسته شدن صفحه و ورود به صفحه جدید دیگر اطلاعات قبلی را نمایش نمی دهد.

    Dim ID AsInteger = Val(TextBox1.Text)
    Session.Add("UserID", ID)
    Response.Redirect("Default16.aspx")

    در کد بالا id جنس انتخاب شده توسط کاربر در یک session ذخیره شده و کاربر به صفحه Default16.aspx وارد می شود.

    Sub BindGrid()
    Dim ID AsInteger
    ID = Session("UserID")
    con = New OleDbConnection(String.Format("provider = microsoft.jet.oledb.4.0 ; data source = {0}", Server.MapPath("~") + "\App_Data\database.mdb"))
    Dim da As OleDbDataAdapter
    Dim ds As DataSet
    strSelect = "SELECT * FROM pro WHERE ID = " & ID
    da = New OleDbDataAdapter(strSelect, con)
    ds = New DataSet()
    da.Fill(ds)
    DataGrid1.DataSource = ds
    DataGrid1.DataBind()

    EndSub
    ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load
    IfNot Page.IsPostBack Then
    IfNot Session("UserID") IsNothingThen
    BindGrid()
    Else
    Response.Redirect("Default2.aspx")
    EndIf
    EndIf
    EndSub

    با کد بالا id جنس خوانده می شود و اطلاعات آن نمایش داده می شود.
    بر فرض عدد2 در textbox1 وارد می شود و اطلاعات آن در صفحه 16 نمایش داده می شود .
    مشکل من این است که اگر کاربر صفحه راببندد و اینبار عدد3 را وارد کند فقط اطلاعات مربوط به id عدد 3 نمایش داده می شود.
    من می خواهم اطلاعات هم عدد3 و هم عدد2 نمایش داده شود.
    اگر کمک کنید ممنون می شوم.

  5. #5
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    40
    پست
    1,944
    وقتی صفحه بسته میشه در اصل کوکی مربوط به session id از بین میره و شما دیگه نمیتونی اطلاعات سابق رو داشته باشی.

    برای این کار مستقیم از خود کوکی استفاده کن و تاریخ expire اونو تنظیم کن که با بسته شدن صفحه بازم باقی بمونه.


    موفق باشید

  6. #6
    کاربر دائمی آواتار arsalansalar
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    اتاق آبی
    پست
    974
    نقل قول نوشته شده توسط raravaice مشاهده تاپیک
    وقتی صفحه بسته میشه در اصل کوکی مربوط به session id از بین میره و شما دیگه نمیتونی اطلاعات سابق رو داشته باشی.

    برای این کار مستقیم از خود کوکی استفاده کن و تاریخ expire اونو تنظیم کن که با بسته شدن صفحه بازم باقی بمونه.


    موفق باشید
    با سلام
    منظور من را متوجه نشدید(هدف من از ایجاد تایپیک نحوه پاک کردن session ها نیست)
    مشکل من این است که فقط اطلاعات یک جنس را می توانم برگردانم.
    یکی از دوستانم گفت اول با رشته باید اینها را به هم بچسبونی.
    مثلا بشه
    1&2&3...
    بعد با indexof کاراکتر & را بداری و در آخر query بگیری.
    ممنون می شوم اگر من را راهنمایی کنید.

  7. #7
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    40
    پست
    1,944
    مشکل من این است که فقط اطلاعات یک جنس را می توانم برگردانم.
    من گفتم بجای اینکه id رو توی session ذخیره کنی تو کوکی ذخیره کن

    یکی از دوستانم گفت اول با رشته باید اینها را به هم بچسبونی.
    راست گفته.;)

    بعد با indexof کاراکتر & را بداری و در آخر query بگیری.
    1. از & استفاده نکن مگر اینکه htmlencode کنیش ولی بهتره از , یا ; استفاده کنی.
    2.از split به جای indexof استفاده کن چون با یه رشته مرتب سروکار داری که کاراکتر جدا کننده داره.


    موفق باشید

  8. #8
    با توجه به کدهای پست 4:
    وقتی یک متغییر را در قسمت های مختلف مقدار دهی کنید آیا مقادیر قبلی آن متغییر باقی می ماند؟ Session مثل یک متغییر است باید چک کنید اگر خالی بود مقداردهی کنید و اگر پر بود مقادیر جدید را به مقادیر قبلی اضافه کنید.
    تا اینجاش اصلا ربطی به باز وبسته بودن مرورگر نداره.

    نکته دیگه این که ماهیت Session اینه که بعد از پایان یافتن زمانش از بین میره، بستن مرورگر هم باعث از بین رفتنش میشه.

    بنابراین همون طور که در پست 5 دوستان گفتند شما بهتره از کوکی یا دیتابیس برای نگهداری اطلاعات (به صورت پایدار) استفاده کنید.

    در مورد روش استفاده از کوکی برای فروشگاه هم جستجو کن!

  9. #9
    کاربر دائمی آواتار arsalansalar
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    اتاق آبی
    پست
    974
    نقل قول نوشته شده توسط raravaice مشاهده تاپیک
    من گفتم بجای اینکه id رو توی session ذخیره کنی تو کوکی ذخیره کن



    راست گفته.;)



    1. از & استفاده نکن مگر اینکه htmlencode کنیش ولی بهتره از , یا ; استفاده کنی.
    2.از split به جای indexof استفاده کن چون با یه رشته مرتب سروکار داری که کاراکتر جدا کننده داره.


    موفق باشید
    منم مشکلم چسبوندن این رشتها به هم هست.
    چه جوری باید این کار و بکنم؟اگر با کدهای خودم یک مثال بگید ممنون می شوم.

  10. #10
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    40
    پست
    1,944
    کوکی ایجاد شده رو بررسی کن اگر وجود نداشت اولین id رو بنویس و دفعات بعد اول علامت بعد id رو بزار همنجوری برو تا آخر.
    ادغام رشته ها !!!!
    وقتی به مسئله به صورت پیچیده نگاه میکنی راه حل های ساده یادت میره.

    موفق باشید

  11. #11
    کاربر دائمی آواتار arsalansalar
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    اتاق آبی
    پست
    974
    یک سواله دیگه.
    با session هم می شود این کارهای را که گفتید انجام داد؟

  12. #12

  13. #13
    ولی وقتی صفحه رو ببندی از بین میره.
    سشن با بستن صفحه از بین میره ؟!
    اینجوری نیستا! سشن عمر مشخصی داره

  14. #14
    کاربر دائمی آواتار arsalansalar
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    اتاق آبی
    پست
    974
    نقل قول نوشته شده توسط raravaice مشاهده تاپیک
    کوکی ایجاد شده رو بررسی کن اگر وجود نداشت اولین id رو بنویس و دفعات بعد اول علامت بعد id رو بزار همنجوری برو تا آخر.
    ادغام رشته ها !!!!
    وقتی به مسئله به صورت پیچیده نگاه میکنی راه حل های ساده یادت میره.

    موفق باشید
    من به دلیل کمبود زمان تمرکزم را از دست دادم.پس اگر مشکل احمقانه دید به بزرگی خود ببخشید.
    من طبق فرموده شما کد زیر را نوشتم ولی باز هم عمل نمی کند.آیا مشکل از کد من هست؟

    If Session("UserID") Is Nothing Then
    Session.Add("UserID", ID)
    Else
    Session.Add("&" & "UserID", ID)
    End If
    End If

  15. #15
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    40
    پست
    1,944
    سشن با بستن صفحه از بین میره ؟!
    اینجوری نیستا! سشن عمر مشخصی داره
    وقتی کلید session که توی کوکی ASP.NET_SessionId ذخیره میشه با بسته شدن صفحه از بین بره شما چطور میخوای اطلاعات رو از سرور بگیری؟
    مگر زمان expire این کوکی رو متناسب با زمان session زیاد کنی.
    آیا مشکل از کد من هست؟

    If Session("UserID") Is Nothing Then
    Session("UserID")=ID & ","
    Else
    Session("UserID") &= ID & ","
    End If
    End If
    موفق باشید

  16. #16
    کاربر دائمی آواتار arsalansalar
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    اتاق آبی
    پست
    974
    من کد شما را نوشتم ولی کارکترها به هم چسبیده.مثل عکس پایین.
    کد زیر را هم برای split استفاده کردم.اگر مشکلی در کدم هست لطف کنید و به من توضیح بدهید.
    با تشکر فراوان از شما.

    Dim str AsString = TextBox1.Text
    Dim array() AsString
    array = str.Split(",")
    TextBox2.Text = array(UBound(array))
    عکس های ضمیمه عکس های ضمیمه

  17. #17
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    40
    پست
    1,944
    یا کامپایلر شما خیلی حساسه به مقادیر integer و string یا یه جای کارو خراب کردی.

    مقدار id رو به string تبدیل کن بعد الحاقش کن ببین درست میشه؟!

    موفق باشید

  18. #18
    کاربر دائمی آواتار arsalansalar
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    اتاق آبی
    پست
    974
    اگر راجع به split آن هم کد بگزارید ممنون می شوم.

  19. #19
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    40
    پست
    1,944
    کدی که نوشته درسته!
    بعد از اینکه str رو split کردی هر id توی یکی از index های array قرار میگیره حالا با for each یا for next از صفر تا اندازه آرایه -1 ایندکس شماری کن و مقادیر رو الحاق کن به textbox2

    موفق باشید

  20. #20
    کاربر دائمی آواتار arsalansalar
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    اتاق آبی
    پست
    974
    میشه لطف کنید یک دستور for each این را بزارید؟
    چون با کدی که من نوشتم هی خطا می گیرد

  21. #21
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1385
    محل زندگی
    اصفهان
    سن
    42
    پست
    66
    به نظر من بهتره از profile استفاده کنی خیلی راحت تره

  22. #22
    کاربر دائمی آواتار arsalansalar
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    اتاق آبی
    پست
    974
    نمیشه یک مثال از حلقه این بزنید.
    چون ماله من همش خطا می گیرد.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •