我有一个文件basket.php
完全显示计数,但在另一个php文件product.php
中,它总是显示0编码如下:
basket.php
<?php
//include(dirname(__FILE__)."/../config.php");
if (isset($_COOKIE["products"])) {
//Count of all products in basket
$BasketCount = count($_COOKIE['products']);
//Loop through and get each cookie
foreach ($_COOKIE['products'] as $name) {
$name = htmlspecialchars($name);
echo "$name <a href='remove.php?remove=$name'>Click here to remove from basket</a> <br />\n";
}
echo "Basket Count: $BasketCount";
}else{
echo "Basket is empty";
}
?>
product.php (只是获得篮子数的线)
$basketcount = count($_COOKIE['products']);
以下是我设置cookie的方式
addtobasket.php
<?php
include(dirname(__FILE__)."/../config.php");
$product = $_GET['p'];
setcookie("products[$product]", $product);
echo "$product added to basket";
//Show current basket products
?>
答案 0 :(得分:1)
路径可能会出现问题 - http://www.php.net/manual/en/function.setcookie.php,$path
参数。或域名。
答案 1 :(得分:1)
不是实际答案,但仍然相关:
假设您正在制作带有购物篮/购物车系统的商业网站,我会建议: 不要依赖COOKIES ,永远不要。它存储在客户端,可以轻松修改。此外,一些浏览器只是拒绝它们,因此你的购物篮将不起作用。
使用$_SESSION[]
代替,它们只存储标识符客户端。更安全,既可以防止黑客攻击代码漏洞,也可以解决任何问题。
答案 2 :(得分:0)
可能是您在设置cookie之前运行product.php ..
除了那段代码对我来说没问题。
或者您可以通过此代码检查Cookie是否已设置..
如果(isset($ _ COOKIE [ '产品'] [$产物])){
echo "cookie is set..";
}
这样你就会有自己的想法......