- 註冊時間
- 2006-3-13
- 最後登錄
- 2023-9-3
- 在線時間
- 673 小時
- 閱讀權限
- 200
- 積分
- 417
- 帖子
- 1107
- 精華
- 0
- UID
- 2
|
針對登入成功後 yii 框架會把 Session Id 重新設定的特性
說說我的想法
首先不能有先入為主的觀念,認為這樣特性是錯誤的
會認定是錯誤的朋友應該就是以往都習慣直接應用 session_id 的開發者
我認為 yii 是經過設計的框架,只有入鄉隨俗去適應與理解
雖然 session id 會被更換,不管是基於什麼原因
但至少更換前設定在 $_SESSION 內的資料在更換後都還是保留下來
所以可以換個方式處理,例如:- class CartController extends Controller
- {
- public function actionAjaxAddToCart()
- {
- if(!isset(Yii::app()->session['cart_key']))
- {
- Yii::app()->session['cart_key'] = session_id(); //將目前 Session ID 保存起來
- }
- $cart_key = Yii::app()->session['cart_key'];
- $product_id = $_GET['product_id'];
- $cart = Cart::model()->findByAttributes(array(
- 'cart_key'=>$cart_key,
- 'product_id'=>$product_id,
- ));
- if($cart===NULL)
- {
- //新增
- }
- else
- {
- //增加數量
- }
- ...後略...
- }
- }
複製代碼 這樣就可以用 $cart_key 來解決問題了,而不是也不需要自己繼承 Class 或改寫 framework。
|
|