PDA

View Full Version : Xử lý vấn đề session khi viết ứng dụng giỏ hàng



huyento
24-11-2010, 14:51
Chào các anh chị, em là ma mới có thắc mắc muốn hỏi anh chị đây:
Em đang viết cái ứng dụng giỏ hàng trên vs2008(c#) như thế này: có 1 class CartItem để mô tả các đối tượng là hàng hóa, 1 class Basket để mô tả đối tượng giỏ hàng,em sử dụng 1 biến session["shopping"] để lưu thông tin về giỏ hàng, nói chung là chạy được nhưng có 1 vấn đề là khi em chạy website và tiến hành mua hàng (vd mua 2 sp chẳng hạn thì trong giỏ hàng vẫn có 2 sp) sau đó em chạy website trên trình duyệt khác thì giỏ hàng nó vẫn báo là có 2 sản phẩm (đúng ra là khi chạy trên trình duyệt khác thì session["shopping"] phải mất giá trị chứ, mặc dù trong file Global.asax em đã gán session["shopping"]=null trong thủ tục Session_Start().
Vậy ai có kinh nghiệm về vấn đề này rồi thì giúp em với, làm sao để xóa cái session đó khi chạy trên trình duyệt khác? Em cảm ơn nhiều

megaownage
24-11-2010, 14:57
Trình duyệt khác tức là làm sao? một cái là IE và cái kia FF?

huyento
24-11-2010, 15:11
đúng rồi, vd khi em mở bằng FF và mua 2 sản phẩm, rồi mở tiếp bằng IE chẳng hạn thì trong giỏ đã có 2 SP

dammio
25-11-2010, 15:44
Session không ảnh hưởng đến trình duyệt nào đang xem trong khoảng thời gian tồn tại.

megaownage
26-11-2010, 07:55
Server coi hai trình duyệt khác nhau là hai sessions khác nhau. Tức là chúng không chia xẻ biến session. Nếu hai lần mở trình duyệt khác nhau mà bị chia xẻ biến session là hệ thống của bạn có hiện tượng lạ. Có lẽ tại bạn điều khiển biến trong Global.aspx

Có lẽ bạn nên loại biến ra khỏi Global và khởi động chúng trong trang chủ (if not page postback)

huyento
26-11-2010, 08:42
cảm ơn bạn megaownage đã chỉ hộ, mình đã khắc phục được lỗi này rồi