Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何创建用于门票销售的购物车_Php - Fatal编程技术网

Php 如何创建用于门票销售的购物车

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

我的代码似乎有一个无法修复的问题。我遇到了一些我遇到麻烦的错误

错误是:

未定义的索引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_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
    而不是
    $result
    第5行。您在第29行有
    $i-0
    而不是
    $i=0

  • 此外,您正在执行一个查询(一个不安全的查询,请看一看) 使用
    $\u GET['id']
    ,而不使用 确保此变量可用:您在线检查 8如果已设置,但该检查在注入后执行 查询中的未知值

  • 在第14行,您假定
    $\u SESSION['cart']
    是一个数组,尽管这个数组以前没有定义过

  • $cart=unserialize(序列化($\u会话['cart']))
    怎么了?如果购物车是
    项目
    对象的数组,您可以简单地像这样迭代:
    foreach($\u会话['cart']作为$item){echo$item->id;/*etc*/}
未定义的索引id

我猜
$\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);