2017-06-12 10 views
1

サーバーが自分のコンピュータ(http://127.0.0.1/)で、Cookieが作成されていることを確認しました。

これは私のコードです。このコードはフォームによって "selected_item_no"を取得し、クッキーを作成または上書きします。 //Issue is hereとコメント行を見てください:

<?php 
session_start(); 
$selected_item_no=$_POST["selected_item_no"]; 
$search_item=$_POST["search_item"]; 
$search_text=$_POST["search_text"]; 
$isadded = 0; 
if((trim($selected_item_no)!="")) { 
    if (isset($_COOKIE["maxcount"])) { 
     $maxcount = $_COOKIE["maxcount"]; 
     for($ii=1;$ii<=$maxcount;$ii++){ 
     ////////// ISSUE IS HERE 
     if(isset($_COOKIE["cart_item_no[$ii]"])){ // this line doesn't work 
     ///////// 
      $temp_item_no = $_COOKIE["cart_item_no[$ii]"]; 
      if(trim($temp_item_no)===trim($selected_item_no)){ 
      $temp_item_count = $_COOKIE["cart_item_count[$ii]"] + 1; 
      setcookie("cart_item_count[$ii]", $temp_item_count, time()+3600, "/"); 
      $temp_arr_i = $ii; 
      $isadded = 1; 
      break; 
      } 
     } 
     } 
     if($isadded == 0){ 
     $maxcount = $ii; 
     setcookie("maxcount", $maxcount, time()+3600, "/"); 
     setcookie("cart_item_no[$maxcount]", $selected_item_no, time()+3600, "/"); 
     setcookie("cart_item_count[$maxcount]", 1, time()+3600, "/"); 
     $temp_arr_i = $ii; 
     } 
    } else { 
     $maxcount = 1; 
     setcookie("maxcount", $maxcount, time()+3600, "/"); 
     setcookie("cart_item_no[$maxcount]", $selected_item_no, time()+3600, "/"); 
     setcookie("cart_item_count[$maxcount]", 1, time()+3600, "/"); 
     $temp_arr_i = $maxcount; 
    } 
    } 
    $temp_count_tt = $_COOKIE["cart_item_count[$temp_arr_i]"]; 
?> 
<html> 
<head> 

<?php 
include("./style.php"); 
?> 

</head> 
<body> 
<?php 
    if((trim($selected_item_no)!="")) { 
    echo("$selected_item_no is added at $temp_arr_i . count: $temp_count_tt. isadded: $isadded.<br>"); 
    var_dump($_COOKIE); 
    } 
?> 

var_dump($_COOKIE)

はこのようなものです。つまり、 $_COOKIE["cart_item_no"]は、配列として $_COOKIEに定義されています。

array(4) { ["PHPSESSID"]=> string(32) "819d97292666fbe9201ba52219204324" ["cart_item_no"]=> array(7) { [1]=> string(3) "b01" [2]=> string(3) "b02" [3]=> string(3) "b01" [4]=> string(3) "b01" [5]=> string(3) "b01" [6]=> string(3) "b02" [7]=> string(3) "b02" } ["cart_item_count"]=> array(7) { [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "1" [4]=> string(1) "1" [5]=> string(1) "1" [6]=> string(1) "1" [7]=> string(1) "1" } ["maxcount"]=> string(1) "7" } 

私はこの問題を解決する方法がわからない

...

+0

なぜ3つのクッキーを設定していますか?なぜあなたはセッションを使用していませんか? – rtfm

+0

コードスニペットを編集し、どこで 'var_dump'を使ったのか、' isset() 'をどこで使ったのかを表示します。 – SaidbakR

+2

'$ _COOKIE [" cart_item_no [$ ii] "]'ではなく、 '$ _COOKIE [" cart_item_no "] [$ ii]'でなければなりません。 – Siguza

答えて

1

あなたは間違った添字配列をやっています。
正しい構文は$_COOKIE["cart_item_no"][$ii]で、$_COOKIE["cart_item_no[$ii]"]ではありません。

関連する問題