Php 如何创建用于门票销售的购物车
我的代码似乎有一个无法修复的问题。我遇到了一些我遇到麻烦的错误 错误是: 未定义的索引id、未定义的变量结果和未定义的变量i 我该如何解决这个问题Php 如何创建用于门票销售的购物车,php,Php,我的代码似乎有一个无法修复的问题。我遇到了一些我遇到麻烦的错误 错误是: 未定义的索引id、未定义的变量结果和未定义的变量i 我该如何解决这个问题 <?php session_start(); require 'connect.php'; require 'item.php'; $relult = mysqli_query($link, 'select * from tickets where id='.$_GET['id']); $product = mysqli_fetch_objec
<?php
session_start();
require 'connect.php';
require 'item.php';
$relult = mysqli_query($link, 'select * from tickets where id='.$_GET['id']);
$product = mysqli_fetch_object($result);
if(isset($_GET['id'])){
$item= new Item();
$item->id = $product->id;
$item->name = $product->game;
$item->price = $product->price;
$item->quantity = 1;
$_SESSION['cart'][] = $item;
}
?>
<table align="center">
<td colspan="11"><h4> Upcoming games 2016/2017</h3> <td>
<tr>
<th>id</th>
<th>game</th>
<th>price</th>
<th>stadium</th>
<th>quantity</th>
<th>Sub Total</th>
</tr>
<?php
$cart = unserialize(serialize($_SESSION['cart']));
for($i-0; $i<count($cart); $i++){
?>
<tr>
<td><?php echo $cart[$i]->id; ?> </td>
<td><?php echo $cart[$i]->game; ?> </td>
<td><?php echo $cart[$i]->price; ?> </td>
<td><?php echo $cart[$i]->stsdium; ?> </td>
<td><?php echo $cart[$i]->quantity; ?> </td>
<td><?php echo $cart[$i]->price * $cart[$i]->quantity; ?> </td>
</tr>
<?php } ?>
</table>
<a href=" buytickets.php">Add more tickets to your cart</a>
</div>
2016/2017年即将举行的奥运会
身份证件
游戏
价格
体育场
量
小计
恐怕这里有很多问题
- 首先,有两个明显的问题:在上有
而不是$relult
第5行。您在第29行有$result
而不是$i-0
$i=0
- 此外,您正在执行一个查询(一个不安全的查询,请看一看)
使用
,而不使用 确保此变量可用:您在线检查 8如果已设置,但该检查在注入后执行 查询中的未知值$\u GET['id']
- 在第14行,您假定
是一个数组,尽管这个数组以前没有定义过$\u SESSION['cart']
怎么了?如果购物车是$cart=unserialize(序列化($\u会话['cart']))
对象的数组,您可以简单地像这样迭代:项目
foreach($\u会话['cart']作为$item){echo$item->id;/*etc*/}
$\u GET['id']
是未定义的。也许您需要$\u POST['id']
或$\u SESSION['id']
?查看以查看GET和POST之间的区别 未定义变量结果 你在第五行打错了
$relult=
应该是$result=
未定义变量i
同样是一个输入错误,这次在第28行:for($i-0;
应该是for($i=0;
)
您在$\u会话['cart']
上的第一次访问应该是检查它是否已设置和是否为数组。执行以下操作以初始化值:
if(!isset($_SESSION['cart']) || !is_array($_SESSION['cart'])
$_SESSION['cart'] = array();
线路
<td colspan="11"><h4> Upcoming games 2016/2017</h3> <td>
这对我来说毫无意义。为什么不$cart=$\u会话['cart'];
?请注意,您没有设置
$cart[$i]->stsdium;
。您是指体育场吗
此外,您还应该考虑使用GET和POST值来提高安全性。从POST筛选id可能如下所示:
$id = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT);
$id = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT);