Php 使用会话变量创建收藏夹页面
我试图创建一个收藏夹页面,用户从“菜单”中选择项目,然后将项目放置在收藏夹页面中。我正在使用会话变量Php 使用会话变量创建收藏夹页面,php,html,Php,Html,我试图创建一个收藏夹页面,用户从“菜单”中选择项目,然后将项目放置在收藏夹页面中。我正在使用会话变量 $_SESSION['favourites'] 我正在使用 session_start('session.php') 在会话_start中,它包括 <?php session_start(); ?> 当我将两个文件组合在一起时,“收藏夹”功能会起作用,但当我在另一个页面上显示收藏夹时,它不会起作用 这是菜单页 $conn = mysqli_connect("
$_SESSION['favourites']
我正在使用
session_start('session.php')
在会话_start中,它包括
<?php
session_start();
?>
当我将两个文件组合在一起时,“收藏夹”功能会起作用,但当我在另一个页面上显示收藏夹时,它不会起作用
这是菜单页
$conn = mysqli_connect("localhost", "root", "", "restaurant");
$sql= "SELECT * FROM menu ORDER BY id ASC";
$result=mysqli_query($conn, $sql);
$resultcheck=mysqli_num_rows($result);
if(isset($_POST["add_to_favourite"]))
{
if(isset($_POST["favourites"]))
{
$food_item_id = array_column($_SESSION["favourites"], "item_id");
if(!in_array($_GET["id"], $food_item_id))
{
$count = count($_SESSION["favourites"]);
$item_array = array(
'item_id' => $_GET["id"],
'item_name' => $_POST["hidden_name"],
'item_price' => $_POST["hidden_price"],
'item_desc' => $_POST["hidden_desc"]
);
$_SESSION["favourites"][$count] = $item_array;
}else{
echo '<script>alert(You have already added this item to Favourites")</script>';
}
}
else{
$food_array = array(
'item_id' => $_GET["id"],
'item_name' => $_POST["hidden_name"],
'item_price' => $_POST["hidden_price"],
'item_desc' => $_POST["hidden_desc"]
);
$_SESSION["favourites"][0] = $food_array;
}
}
?>
<!-- Start of HTML -->
<section id="intro">
<div class="hero-global container">
<h1 class="global-header">Detailed Menu</h1>
</div>
</section>
<div class="container">
<ul class="food-cards">
<?php
if($resultcheck>0)
{
while($row=mysqli_fetch_assoc($result))
{
?>
<li class="card-info">
<form method="post" action="favourites.php?action=add&id=<?php echo $row["id"]; ?>">
<div class="food-card">
<div class="food-pic">
<img src="./assets/english-breakfast.png" alt="">
</div>
<div class="food-cont">
<h2 class="food-title">
<?php
echo $row['name']
?>
</h2>
<p class="food-desc">
<?php echo $row["description"]; ?>
</p>
<div class="price-fav-btn">
<div class="price">
<?php
echo "€".$row['price']
?>
</div>
<div class="atf-btn">
<input class="fav-btn" type="submit" name="add_to_favourite" value="Add to Favourites"/>
</div>
<input type="hidden" name="hidden_name" value="<?php echo $row["name"]; ?>" />
<input type="hidden" name="hidden_price" value="<?php echo $row["price"]; ?>" />
<input type="hidden" name="hidden_desc" value="<?php echo $row["description"]; ?>" />
</div>
</div>
</div>
</form>
</li>
<?php
}
}
?>
</ul> <!-- end of ul list -->
</div>
$conn=mysqli_connect(“本地主机”、“根”、“餐厅”);
$sql=“按id ASC从菜单顺序中选择*”;
$result=mysqli\u查询($conn,$sql);
$resultcheck=mysqli_num_行($result);
如果(isset($\u POST[“添加到收藏夹”]))
{
如果(isset($_POST[“收藏夹”]))
{
$food_item_id=数组_列($_SESSION[“收藏夹”],“item_id”);
如果(!在数组中($\u GET[“id”],$food\u item\u id))
{
$count=计数($_会话[“收藏夹]);
$item\u数组=数组(
'item_id'=>$\u GET[“id”],
'项目名称'=>$\u帖子[“隐藏名称”],
'项目价格'=>$发布[“隐藏价格”],
'item_desc'=>$\u POST[“hidden_desc”]
);
$\u会话[“收藏夹”][$count]=$item\u数组;
}否则{
回显“提醒(您已将此项目添加到收藏夹”);
}
}
否则{
$food\u数组=数组(
'item_id'=>$\u GET[“id”],
'项目名称'=>$\u帖子[“隐藏名称”],
'项目价格'=>$发布[“隐藏价格”],
'item_desc'=>$\u POST[“hidden_desc”]
);
$\u会话[“收藏夹”][0]=$food\u数组;
}
}
?>
详细菜单
-
您必须将会话_start()放在两个页面中。不清楚您是否这样做了?您没有展开“不工作”,因此不清楚您是否有特定的错误消息或其他意外行为?为什么要删除?
<?php
if(isset($_GET["action"]))
{
if($_GET["action"] == "delete")
{
foreach($_SESSION["favourites"] as $keys => $values)
{
if($values["item_id"] == $_GET["id"])
{
unset($_SESSION["favourites"][$keys]);
echo '<script>alert("Item Removed")</script>';
echo '<script>window.location="menudetails.php"</script>';
}
}
}
}
?>
<div><h1>Favourites</h1></div>
<table>
<tr style="text-align: left">
<th width="30%">Name</th>
<th width="60%">Description</th>
<th width="5%">Price</th>
<th width="5%">Remove</th>
</tr>
<?php
if(!empty($_SESSION["favourites"]))
{
foreach($_SESSION["favourites"] as $key => $value)
{
?>
<tr>
<td width: 20%><?php echo $value["item_name"] ?></td>
<td style="text-align: left"><?php echo $value["item_desc"]?></td>
<td><?php echo '€'.$value["item_price"]?></td>
<td><a href="favourites.php?action=delete&id=<?php echo $value["item_id"]; ?>"><span class="fav-btn">Remove</span></a></td>
</tr>
<tr>
</table>
<?php
}
}
?>