PHP中遇到的非数字值 - 电子商务网站

时间:2018-02-08 11:03:32

标签: php html mysql mysqli mamp

我正在尝试使用php会话来存储变量,但它并不想玩球。

我收到错误:警告:第119行/ Users / mac / Briefcase / Web Design / Testing / Udemy / ecommerce / cart.php中遇到非数字值

有趣的是,错误显示两次。

我正在运行MAMP 4.2.1和php 7.1.8

我已经将session_start声明为文档中的第一件事,不知道发生了什么?谢谢:))

pastebin中的完整代码:https://pastebin.com/AVtq97uG

    <td><input type="text" size="6" name="qty" value="<?php echo $_SESSION['qty']; ?>"/></td>
    <?php
     if(isset($_POST['update_cart'])){
      $qty = $_POST['qty'];
      $update_qty = "update cart set qty='$qty'";
      $run_qty = mysqli_query($con, $update_qty);

      $_SESSION['qty'] = $qty;
      $total = $total * $qty;


     }
     ?>

1 个答案:

答案 0 :(得分:0)

您正在尝试将不是数字的值相乘。

$total = $total * $qty;

前:

echo 12 * "test" ; // PHP Warning:  A non-numeric value encountered
echo 12 * "12" ; // Works : 144

此处,$qty来自用户输入,不能是数字。

您必须先检查此值,如果值不是数字,则不执行操作。

您可以使用is_numeric()检查:

if (isset($_POST['update_cart']) && 
    isset($_POST['qty']) && 
    is_numeric($_POST['qty'])) 
{
   // do stuff
} else {
   // error fallback 
}