Hi, I'm just testing out the cookie function to set/retrieve a cookie array. Somehow the number of elements in the array will only go to 20 and no more. The script below will set a cookie array, and incrementing the position at every refresh. So at every refresh, it'll print array[1] = 1, array[2] = 2 ...and so on. Does anyone know why it stops at about 20 elements? Any input would be appreciated. thanks.
---------- <?
//retrieving and assigning cookie $cart = $_COOKIE['cart'];
//if cookie is empty if (empty($cart) ¦¦!isset($cart)) { setcookie("cart[i]", 1); $cart = $_COOKIE["cart"]; }
$max = $cart[1];
//finds last position of cookie array for ($i = 1; $i <= sizeof($cart); $i++) { if ($cart[$i] > $max) { $max = $cart[$i];} }
//increment array position $max++;
//attempts to set cookie (success) if(setcookie("cart[$max]", $max)){ echo "Cookie set!<br>\n"; } //failed to set cookie else{ echo "Failed to set cookie <br>\n"; }
//prints all elements of cookie (array) cart if(!empty($cart)){ for ($j = 1; $j <= sizeof($cart); $j++){ $temp = $cart[$j]; echo "\$cart[$j] : $temp <br>\n"; } }
You might be running into restrictions on the number of cookies a user agent will accept. I believe for IE the number is about 20. Firefox accepts about 50 cookies. It is generally better to store the cart content on the server.