如何让这个页面工作,它只是重定向到主页

问题描述 投票:0回答:1

我正在制作电子商务网站,并添加到篮子脚本没有做任何我希望它从产品页面插入数据到购物篮,工作完全正常。请看看并帮我弄清楚..它没有给出任何语法错误或解析错误它只是没有做任何事情当我点击购买它只是重定向我到主页

<?php
error_reporting(E_ALL);
session_start();
require("db.php");
require("functions.php");
$validid = pf_validate_number($_GET['id'], "redirect", $config_basedir);
$prodsql = "SELECT * FROM products WHERE id = " . $_GET['id'] . ";";
$prodres = mysqli_query($prodsql);
$numrows = mysqli_num_rows($prodres);
$prodrow = mysqli_fetch_assoc($prodres);
if($numrows == 0)
{     
  header("Location: " . $config_basedir);
} else {
  if($_POST['submit'])
  {
    if($_SESSION['SESS_ORDERNUM'])
    {
      $itemsql = "INSERT INTO orderitems(order_id, product_id, quantity) VALUES("
                 . $_SESSION['SESS_ORDERNUM'] . ", "
                 . $_GET['id'] . ", "
                 . $_POST['amountBox'] . ")";
      mysqli_query($itemsql);
    } else {
      if($_SESSION['SESS_LOGGEDIN'])
      {
        $sql = "INSERT INTO orders(customer_id, registered, date) VALUES("
               . $_SESSION['SESS_USERID'] . ", 1, NOW())";
        mysqli_query($sql);
        session_register("SESS_ORDERNUM");
        $_SESSION['SESS_ORDERNUM'] = mysqli_insert_id();
        $itemsql = "INSERT INTO orderitems(order_id, product_id, quantity) VALUES("
                   . $_SESSION['SESS_ORDERNUM']
                   . ", " . $_GET['id'] . ", "
                   . $_POST['amountBox'] . ")";
        mysqli_query($itemsql);
      } else {
        $sql = "INSERT INTO orders(registered, date, session) VALUES("
               . "0, NOW(), '" . session_id() . "')";
        mysqli_query($sql);
        session_register("SESS_ORDERNUM");
        $_SESSION['SESS_ORDERNUM'] = mysqli_insert_id();
        $itemsql = "INSERT INTO orderitems(order_id, product_id, quantity) VALUES("
                   . $_SESSION['SESS_ORDERNUM'] . ", " . $_GET['id'] . ", " 
                   . $_POST['amountBox'] . ")";
        mysqli_query($itemsql);
      }
    }
    $totalprice = $prodrow['price'] * $_POST['amountBox'] ;
    $updsql = "UPDATE orders SET total = total + "
              . $totalprice . " WHERE id = "
              . $_SESSION['SESS_ORDERNUM'] . ";";
    mysqli_query($updres);
    header("Location: " . $config_basedir . "showcart.php");
  } else {
    require("header.php");
    echo "<form action='addtobasket.php?id="
         . $_GET['id'] . "' method='POST'>";
    echo "<table cellpadding='10'>";
    echo "<tr>";
    if(empty($prodrow['image'])) 
    {
      echo "<td><img src='./productimages/dummy.jpg' width='50' alt='"
           . $prodrow['name'] . "'></td>";
    } else {
      echo "<td><img src='./productimages/" . $prodrow['image']
           . "' width='50' alt='" . $prodrow['name']
           . "'></td>";
    }
      echo "<td>" . $prodrow['name'] . "</td>";
      echo "<td>Select Quantity <select name='amountBox'>";
      for($i=1;$i<=100;$i++)
      {
        echo "<option>" . $i . "</option>";
      }
      echo "</select></td>";
      echo "<td><strong>&pound;"
           . sprintf('%.2f', $prodrow['price'])
           . "</strong></td>";
      echo "<td><input type='submit' name='submit' value='Add to basket'></td>";
      echo "</tr>";
      echo "</table>";
      echo "</form>";
   }
}
require("footer.php");
error_reporting(E_ALL);
?>
php sql
1个回答
1
投票

有两个重定向,使您的用户返回到您的主页

第一:

$validid = pf_validate_number($_GET['id'], "redirect", $config_basedir);

确保$_GET['id]具有有效价值

第二:

$prodsql = "SELECT * FROM products WHERE id = " . $_GET['id'] . ";";
$numrows = mysqli_num_rows($prodres);
// ...
if($numrows == 0)
{     
  header("Location: " . $config_basedir);
}

检查此行中的查询:

$prodsql = "SELECT * FROM products WHERE id = " . $_GET['id'] . ";";

确保它不返回空结果($numrows == 0

首先在DBMS前端进行测试

© www.soinside.com 2019 - 2024. All rights reserved.