作者kerash (K.T)
看板PHP
標題Re: [請益] 關於購物車的cookie問題 (新手第一次發文
時間Sat Mar 23 17:53:12 2013
※ 引述《aatty (山下同)》之銘言:
: 小弟初學乍練 最近在學習購物車的程式,煩請各位不吝指教
: 是這樣的,這是一個將指定的產品 放入購物車(寫入cookie)的php
: <?php
: //取得表單資料(選購了一本書,為方便起見只讀入書號)
: $book_no=$_GET["book_no"]
: if(empty($_COOKIE["book_no_list"])) //若購物車為空就直接加入產品資料
: {
: setcookie("book_no_list",$book_no);
: }
: else //取得購物車資料
: {
: $book_no_array=explode(",",$COOKIE["book_no_list"]);
: }
: $book_no_array[] = $book_no; //將物品加入購物車
: setcookie("book_no_list",implode(",",$book_no_array));
: ?>
: 小弟想問的是1.一開始的if敘述裡面就用了$_COOKIE的函式,可是一開始並
: 沒有設定book_no_list這個cookie阿 那$_COOKIE要去哪裡找值?@@
問題1 這個問題跟購物車其實沒甚麼很大的關係,應該是PHP的概念
在PHP中,如果要取得某個陣列中索引的值,而這個值本身不存在時
自動就是回傳回空的值 (實際是 NULL)
而你那段 empty ($_COOKIE["book_no_list"]) 就是為了判斷這個cookie索引是否有值
另外如果 PHP 的警告有開啟 NOTICE 的訊息就會出現
Notice: Undefined index: [key] in [file] on line [lno]
: 2.explode這個函式等號左邊宣告的一開始就是陣列嗎?
: 我真的很新手 問的可能很笨很基本 但還是希望這個版有人能指導我><
: 感激
第二個問題我建議你先看PHP的網站手冊後,真的不懂再問
http://php.net/manual/en/function.explode.php
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.186.193
推 aatty:謝謝您 我了解您說的陣列中沒有值得話會傳回null 那如果 03/23 19:36
→ aatty:我要從book_no_list裡面抓值 但是book_no_list還沒有set 03/23 19:39
→ aatty:也是傳回NULL嗎? 03/23 19:39
→ kerash:"這個值本身不存在時" = "還沒set" 03/23 20:01
→ kerash:兩者的意思是一樣的 03/23 20:01
推 aatty:了解了 非常感謝你 03/23 20:16
→ kerash:不會~ 03/23 20:16
→ aatty:那$book_no_array=explode(",",$COOKIE["book_no_list"]); 03/23 20:17
→ aatty:=等號左邊可以寫成$book_no_array[]嗎?@@ 03/23 20:18
→ kerash:不能說不行,但是你要了解這樣設定變數會變成甚麼結果 03/23 20:19
推 aatty:意思不一樣嗎?QQ 我有點混亂了 03/23 20:23
推 aatty:兩個不都是陣列嗎? 03/23 20:32
→ MOONRAKER:意思不一樣。你也知道自己是新手,那就先背起來。 03/23 20:35
→ aatty:好的... 03/23 20:45
→ kerash:我在消耗版面一下回一篇好了XD 03/23 22:06