[ECSHOP]session_id

ironman 2023-1-11 138

ECSHOP為了照顧遊客下單,任何地方都是用session_id來記錄,購物車、收貨人信息、瀏覽記錄等。以前倒沒感覺有什麼不好,這次做ECSHOP的手機版才發現,這個session_id害死人了。

1、session_id是有有效期的,默認是1800秒,也就是半個小時。如果某遊客在網站逛超過半個小時,則會生成一個新的session_id,跟原來的不同了,這樣一來,原來添加進的購物車的商品都沒了。因為查詢購物車是以session_id為基礎查的,session_id一變,查詢結果也變了。

這就是第一個麻煩:同一個人,逛的時間稍久一點,變得不認得你了。

2、session_id在不同的瀏覽器或電腦上是肯定會變化的,同時用電腦和手機版訪問,就算是已登陸會員,也是生成兩個不同的session_id,在電腦上添加的購物車信息,手機上顯示不了。同樣,手機上添加的,電腦上也沒有。購物車裡沒商品,當然也就提交不了訂單。

這是第二個麻煩:同一個會員,換不同的工具訪問,之前的一切操作記錄都歸零。

3、收貨地址、個人信息等也是按session_id查詢顯示的,就算是登陸會員,也是只要換不同的工具訪問,所有填寫過的信息全沒了,全要你重填。下次session_id一失效,又全沒了。

查看ECSHOP的代碼,發現到處都是session_id = '" . SESS_ID. "'這樣的查詢,全都是按session_id查的。再看數據表記錄,同一個會員,在同一天,居然會生成5個以上的session_id。這樣一來,同一個會員同一天逛ECSHOP網店,卻只有五分之一能顯示出來,其它全作廢了--這都什麼事兒啊,還有比這更**的麼!

我的ECSHOP網店只允許登陸會員下單,這個session_id根本沒用。把與商品、下單、會員相關的全部文件都找出來,搜索SESS_ID,凡是找到的地方全修改成user_id = '" . $_SESSION['user_id']. "',也就是全都按會員ID查詢。這樣不管用電腦還是用手機、不管在家裡還是在公司,只有操作過就統一記錄、統一顯示。

i love you 3000
最新回復 (0)
返回
發新帖