我正在尝试使用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;
}
?>
答案 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
}