Re: [請益] SESSION接收不到參數的問題~

看板PHP作者 (寶貝豬)時間17年前 (2009/02/20 09:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《jami520 (我的生命因你而發光)》之銘言: : 我做某個購物車,此頁面有四個隱藏欄位 : F_ID:商品主鍵編號 : F_Name:商品名稱 : F_Price:商品價格 : F_Picthum:商品圖片路徑 : 一個下拉選單 : buyNum:購買數量 : 程式碼最前面利用javascript的警告視窗顯示購買的數量,這是正常的 : 但存到SESSION就錯誤了,怎麼選都只有一個 : 其他隱藏欄位的資料存到SESSION都正確 : 不知道這是哪邊的問題呢?謝謝~ : <script> : window.alert("<?php echo $_POST['buyNum'];?>") : </script> : <?php : session_start(); : if(isset($_SESSION['Cart'])){ : if(in_array($_POST['F_ID'],$_SESSION['Cart'])){ : header('Content-type: text/html; charset=utf-8'); : die("<a href=javascript:history.back(-1)>商品已經在購物車內</a>"); : } : } : $_SESSION['Cart'][]=$_POST['F_ID']; : $_SESSION['Name'][]=$_POST['F_Name']; : $_SESSION['Price'][]=$_POST['F_Price']; : $_SESSION['Pic'][]=$_POST['F_Picthum']; : $_SESSION['Quantity'][]=$_POST['buyNum']; session_start() 應該在網頁輸出前先呼叫. 改成: <?php session_start(); ?> <script> window.alert("<?php echo $_POST['buyNum'];?>") </script> <?php ... ?> 另外, 上面把同一個產品的屬性拆到不同陣列的存法並不建議, 除非有必要, 不然以下的寫法會更好: $_SESSION['Cart'][$_POST['F_ID']]=array('ID'=>$_POST['F_ID'], 'Name'=>$_POST['F_Name'], 'Price'=>$_POST['F_Price'], 'Pic'=>$_POST['F_Pic'], 'Quantity'=>$_POST['buyNum']); php的array用法很活. 即可當做一般陣列, 亦可當成是物件的屬性集合來用. 上述的用法同時用上了: $_SESSION['Cart']是'產品陣列',$_POST['F_ID']是 key, 而array('ID'=>...)把產品的屬性內聚在一塊, 而不用拆散在不同的 屬性陣列當中. : header("Location:showcart.php"); : ?> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.84.3 ※ 編輯: bobju 來自: 211.74.84.3 (02/20 12:44)
文章代碼(AID): #19dWZcpH (PHP)
討論串 (同標題文章)
文章代碼(AID): #19dWZcpH (PHP)