PDA

View Full Version : فروشگاه



rohollahmahmoodiany
شنبه 20 فروردین 1384, 05:45 صبح
یک خریدار وارد سایت شده و اجناسی سفارش میدهد :
میخواهم در کل زمانی که وی در حال گشت وگذار در سایت است اجناس مربوط به سبد او را در یک session ذخیره کنم ایا این کار مناسبتر است یا اینکه مثلا فقط id اجناس را در session ذخیره کرده و در هر جا که نیاز شد انها را از دیتا بیس لود کنم.

در صورت استفاده از session ایا اگر کاربر از سایت خارج شد ودوباره برگشت باز هم اطلاعات از session پاک نمیشوند

متشکرم!

مهدی کرامتی
شنبه 20 فروردین 1384, 13:16 عصر
در صورت استفاده از session ایا اگر کاربر از سایت خارج شد ودوباره برگشت باز هم اطلاعات از session پاک نمیشوند
در صورت استفاده از Cookie میتوان اینطور باشد.

Behrouz_Rad
شنبه 20 فروردین 1384, 13:51 عصر
در صورتی که به کوکی زمان انقضا نسبت داده شده باشه (Expires)، کوکی حتی پس از خروج کاربر از سایت نیز از بین نمی رود. (بسته به زمان Expire)
Session ها نیز پس از بستن پنجره Brower از بین می روند.

rohollahmahmoodiany
شنبه 20 فروردین 1384, 15:26 عصر
اقای راد ممنونم!
اقای راد نگفتید کدام مناسبتر است؟ در صورت امکان کدی که با ان کد یک arraylist به session اضافه میشود زا بنوسید. arraylist حاوی سبد خرید مشتری است.ایا این کد میتواند مناسب باشد.

= [ session[arraylist
; arraylist

Behrouz_Rad
شنبه 20 فروردین 1384, 16:29 عصر
جناب rohollahmahmoodiany، توضیح و نوشتن تمامی کدها و روال کار، متاسفانه از وقت و حوصله بنده خارجه.
امیدوارم این راهنمای مختصر، مفید فایده وقع بشه.

یکه نکته مهم: در صورتی که روال کار شما در طراحی یک Web Application به گونه ای است که نیاز به جمع آوری اطلاعات کاربر در مراحل مختلف و در حین پیمایش صفحات است، بهترین راه، استفاده از ViewState است.
Session و Cookie به هیچ وجه توصیه نمی شود.
استفاده از Cookie ها به خاطر احتمال عدم ساپورت مرورگر از کوکی ها، ریسک بزرگی است.
Session ها نیز امنیت چندانی ندارند (مثلا احتمال Down شدن Server در یک لحظه) و همچنین بار اضافی به سرور تحمیل می کنند.
ابتدا یک ArrayList برای ذخیره ID جنس و یک متغیر برای شمارش تعداد اجناس خریده شده تعریف می کنید.


Dim MyArr AS New ArrayList()
Dim intNum AS Int32 = 0

و وقتی که کاربر بر روی هر دکمه مربوط به یک جنس خاص کلیک کرد:


MyArr = ViewState("ShopHistory")
MyArr.Add("MyValue")
intNum += 1

و برای چاپ نتیجه خرید:


For i As Int32 = 1 to intNum
Response.Write (MyArr.Item(i-1).ToString() & "<BR>")
Next

روال کلی کار بدین شکل بود.
موفق باشید.
:wise1:

rohollahmahmoodiany
دوشنبه 22 فروردین 1384, 16:36 عصر
اقای راد ممنون!
ایا در صور ت استفاده از viewstate پس از خروج از سایت اطلاعات از بین میروند یا پس از بسته شدن browser؟در قسمت بالا در مورد session منظور شما ایا این است که اطلاعات session پس از خروج از سایت از بین میروند یا پس از بسته شدن browser؟ایا اصولا تفاوتی بین خروج از سایت وبسته شدن browser وجود دارد(از لحاظ از بین رفتن اطلاعات)
متشکرم!

Behrouz_Rad
دوشنبه 22 فروردین 1384, 22:32 عصر
ایا در صور ت استفاده از viewstate پس از خروج از سایت اطلاعات از بین میروند یا پس از بسته شدن browser؟
ViewState متنی است که در یک فیلد Input همراه با ارسال پاسخ به تقاضای کلاینت از طرف سرور ارسال می شود.
از آنجا که این اطلاعات به مرورگر کلاینت پاس داده می شوند، مشکلی بابت نگرانی در منابع حافظه به وجود نمی آید.
در صورتی که مرورگر بسته شود یا در همان صفحه سایت به صفحه دیگری Redirect شود، به طبع صفحه ی مورد نظر نیز وجود ندارد که در آن ViewState ای وجود داشته باشد و نتیجه کار مشخص است.


در مورد session منظور شما ایا این است که اطلاعات session پس از خروج از سایت از بین میروند یا پس از بسته شدن browser؟
اطلاعات Session به دو شکل از بین می روند.
1) پس از بستن مرورگر
2) پس از اتمام زمان انقضای Session که به طور پیش فرض، 20 دقیقه است. این زمان می تواند در Web.Config اصلاح شود.
نکته مهم: در صورتی که درخواست جدیدی به سمت سرور ارسال شود، این زمان Reset می شود.


ایا اصولا تفاوتی بین خروج از سایت وبسته شدن browser وجود دارد(از لحاظ از بین رفتن اطلاعات)
بستگی داره که شما خروج از سایت رو به چه شکل تعبیر کنید.
به شکل استاندارد، در صورتی که کاربر پس از انجام عمل لوگین، گزینه خروج از سایت را انتخاب کند، Session یا Ticket اختصاص داده شده به کاربر از بین می رود. در این حالت، کاربر به عنوان یک کاربر ناشناخته در نظر گرفته می شود که در این حالت می گوییم: کاربر از سایت خارج شده است یا اصطلاحا Sign Out کرده است.
اگر به شکل فوق تعبیر کنیم، دو حالت پیش می آید:
1) در صورتی که عمل خرید کاربر از سایت نیاز به انجام لوگین داشته باشد، بله مسلما با کدنویسی که انجام می دهیم در صورت خروج کاربر از سایت، سبد خرید کاربر نیز باید خالی شود.
2) در صورتی که عمل خرید کاربر از سایت نیاز به انجام لوگین نداشته باشد (همانند کد فوق)، به طبع در حالت لوگین و غیر لوگین دو وضعیت متفاوت به وجود خواهد آمد که تصمیم گیزی دراین مورد به عهده برنامه نویس سایت است.
نکته 1) در صورتی که کاربر، مرورگر را ببندد، تمامی اطلاعات مرتبط با آن از بین می رود به شرطی که از Cookie ها به منظور نگهداری اطلاعات استفاده نشده باشد.
2) در صورتی که می خواهید اطلاعات کاربر حتی پس از خروج از مرورگر حفظ شود، تنها راه، استفاده از Cookie هاست.
موفق باشید.

rohollahmahmoodiany
چهارشنبه 07 اردیبهشت 1384, 01:05 صبح
با تشکر!
اگر امکان دارد تنظیمات web.config وglobal.asax را بگویید.واشارهای به کد مورد نیاز در حالتی که از session
استفاده میشود را بنویسید.