Php 无法添加数据或在购物车中未显示使用$\u会话
我正在创建一个购物车,其中有两个网页;purchase.php(您可以在其中查看所有可用产品的列表并将其添加到购物车)和cart.php(您可以在其中查看已添加的所有项目并删除项目或清除所有购物车,以及项目总数) 这是我在purchase.php中的代码:Php 无法添加数据或在购物车中未显示使用$\u会话,php,mysql,session,shopping-cart,Php,Mysql,Session,Shopping Cart,我正在创建一个购物车,其中有两个网页;purchase.php(您可以在其中查看所有可用产品的列表并将其添加到购物车)和cart.php(您可以在其中查看已添加的所有项目并删除项目或清除所有购物车,以及项目总数) 这是我在purchase.php中的代码: <?php session_start(); ?> <!DOCTYPE html> <html lang="en"> <head> <title>Purc
<?php session_start();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Purchase</title>
<link rel = "stylesheet" href="bootstrap/css/bootstrap.css">
<!-- Styles -->
<link href="css/bootstrap-combined.min.css" rel="stylesheet">
<link href="datatable-bootstrap.css" rel="stylesheet">
<!-- JS -->
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.dataTables.min.js"></script>
<script src="datatable-bootstrap.js"></script>
<?php
require('config/db_conn.php');
$fetch = mysql_query("SELECT * FROM product") or die(mysql_error());
if(!empty($_POST["add"])) {
$productByCode = mysql_query("SELECT * FROM product WHERE p_code='" . $_POST["p_code"] . "'");
$itemArray = array($productByCode["p_code"]=>array('name'=>$productByCode["p_name"], 'code'=>$productByCode["p_code"], 'quantity'=>$_POST["quantity"], 'price'=>$productByCode["p_price"]));
if(!empty($_SESSION["cart_item"])) {
if(in_array($productByCode["p_code"],$_SESSION["cart_item"])) {
foreach($_SESSION["cart_item"] as $k => $v) {
if($productByCode["p_code"] == $k)
$_SESSION["cart_item"][$k]["quantity"] = $_POST["quantity"];
}
} else {
$_SESSION["cart_item"] = array_merge($_SESSION["cart_item"],$itemArray);
}
} else {
$_SESSION["cart_item"] = $itemArray;
}
}
?>
</head>
<style type="text/css">
body
{
background-color: #6BBEE4;
}
th
(
text-align:center;
)
td
(
align:center;
)
.text-center
{
text-align: center !important;
}
img
{
height: 200px;
width: 200px;
}
.hide
{
visibility: none;
}
.quantitySize
{
width: 90px;
}
.pull
{
margin-left: 220px;
margin-top: -360px;
position: absolute;
}
</style>
<body>
<nav class="navbar navbar-inverse ">
<div class="container-fluid ">
<div class="navbar-header">
<a class="navbar-brand" href="home.php" >MyComputer</a>
</div>
<div>
<ul class="nav navbar-nav navbar-right">
<li><a href="home.php">Home</a></li>
<li class="active"><a href="purchase.php">Purchase</a></li>
<li><a href="cart.php"><span class="glyphicon glyphicon-shopping-cart"></span> Cart</a></li>
<li><a href="logout.php"><span class="glyphicon glyphicon-log-out"></span> Logout</a></li>
</div>
</div>
</nav>
<?php while($result=mysql_fetch_array($fetch)) { ?>
<div class="well form-container-">
<form method = "post" action="cart.php?action=add&code=<?php echo $result['p_code']?>">
<div class="form-group"><img src="<?php echo $result['p_image']?>"></div>
<div class="form-group"><?php echo $result['p_name']?></div>
<div class="form-group"><?php echo $result['p_code']?></div>
<div class="form-group"><?php echo $result['p_price']?></div>
<div class="form-group"><input class="quantitySize" type="text" name="quantity" value="1"/> <input type = "submit" class="btn btn-primary" name="add" value="Add to Cart"></div>
</form>
<form class="pull">
<div class="form-group"><p><?php echo $result['p_desc']?></p></div>
</form>
</div>
<?php }?>
</div>
</body>
</html>
购买
您需要执行session_start()使用会话的所有文件中的代码>。将其添加到purchase.php
的顶部,或者将其放在另一个文件中,并在两个文件中都需要它
您在purchase.php
中的表单正在发布到cart.php
,因此purchase.php
中的此代码将不会运行:
if(!empty($_POST["add"])) {
//code
}
您是否在文件顶部设置了session_start()?var_dump($_SESSION['cart_item'])的结果是什么;死亡@MHakvoort.,我忘了包括会话_start(),但我现在已经编辑了它,但仍然没有显示项目。顺便说一句,我对var_dump不太熟悉。您似乎调用了purchased.php中未定义的会话,请检查again@JeanGkol请你详细说明一下好吗?谢谢顺便说一下,我已经在我的购买上设置了session_start()。phppls首先查看您的HTML结构。回答这个问题让我感到困惑。应该放在标记的上方,并将PHP脚本放在标记的下方或会话_start()的下方。在这里,我没有看到标记:(。然后尝试再次运行它。我现在已经编辑了该标记,但项目仍然没有显示。我已传输代码'if(!empty($\u POST['add']))到我的cart.php,但我现在得到了这个错误:解析错误:语法错误,如果在C:\xampp\htdocs\project\user\cart.php的第13行中出现意外的T\u,我已经更新了代码并修复了我提到的错误,但是我得到了另一个类似这样的错误:`注意:未定义的索引:C:\xampp\htdocs\project\user\cart.php的第115行中的p\u价格。我得到了此类未定义的索引。你知道吗?这意味着$item中不存在p_价格。尝试转储$item以查看其中的内容。
if(!empty($_POST["add"])) {
//code
}