如何移除上传非JPG/PNG图片后错误触发的“Product added successfully”提示?
解决错误触发成功提示的问题
这个问题的核心是你的代码逻辑没有在图片验证失败时阻断后续的成功提示代码执行——哪怕商品没被添加,成功提示的代码还是跑了。我们可以通过调整代码执行顺序和添加终止逻辑来解决:
步骤1:优先做图片格式验证
把图片格式检查放在商品添加逻辑的最前面,确保不符合要求的请求直接被拦截,不会走到后面的流程。
步骤2:验证失败后终止脚本
当检测到非JPG/PNG格式时,弹出错误提示后,立即用exit()或die()终止脚本执行,这样后续的成功提示代码就不会被触发了。
修改后的代码示例
结合你给出的代码片段,调整后的完整逻辑大概是这样:
<?php include('session.php'); // 先获取上传图片的信息 $photo = $_FILES['photo']; $allowed_ext = ['jpg', 'jpeg', 'png']; // 包含jpeg格式以兼容更多场景 $file_ext = strtolower(pathinfo($photo['name'], PATHINFO_EXTENSION)); // 第一步:验证图片格式 if (!in_array($file_ext, $allowed_ext)) { // 弹出错误提示 echo "<script>alert('Photo not added. Please upload JPG or PNG photo only!');</script>"; // 终止脚本,阻止后续代码执行 exit(); } // 第二步:获取商品信息(保留你原有的代码逻辑) $name = $_POST['name']; $category = $_POST['category']; $price = $_POST['price']; $supplier = $_POST['supplier']; $qty = $_POST['qty']; // 第三步:执行商品添加逻辑(比如插入数据库操作) // 这里假设你有数据库插入代码,示例如下: // $sql = "INSERT INTO products (name, category, price, supplier, qty) VALUES (?, ?, ?, ?, ?)"; // 执行SQL并确认插入成功后,再输出成功提示 echo "<script>alert('Product added successfully!');</script>"; ?>
为什么原来的代码会出问题?
大概率是你的成功提示代码没有被包裹在「图片验证通过+商品添加成功」的分支里——哪怕图片验证失败,成功提示的代码还是被无条件执行了。通过上面的调整,只有当图片格式正确,且商品确实被添加成功时,才会显示成功提示。
内容的提问来源于stack exchange,提问作者user7690205
相关产品推荐
相关产品推荐

