【发布时间】:2017-07-29 19:54:41
【问题描述】:
我的表单正在进行长时间的验证,除了价格验证以确保它是正确的格式,它基本上是一系列数字,后跟一个小数点和另外 2 个数字,即12.00 或 112.00 或 124.53 等
这是我的代码,它还检查字段是否已设置且不为空,以及产品名称是否已存在。
<?php
if(isset($_POST['submit']) && isset($_POST['product-name']) && !empty($_POST['product-name']) && isset($_POST['description']) && !empty(trim($_POST['description'])) && isset($_POST['price']) && !empty($_POST['price']) && isset($_POST['category']) && !empty($_POST['category']) && isset($_POST['spice']) && !empty($_POST['category']) && isset($_POST['date-added']) && !empty($_POST['date-added'])){
$product_name = trim($_POST['product-name']);
$description = trim($_POST['description']);
$price = $_POST['price'];
$category = $_POST['category'];
$spice = $_POST['spice'];
$date_added = $_POST['date-added'];
$pattern = '/^\d+(?:\.\d{2})?$/';
$pattern1 = '/^([1-9][0-9]*|0)(\.[0-9]{2})?$/';
if(preg_match($pattern, $price)){
$error = "<script language='javascript'>
window.onload = function(){
var divs = document.getElementById('error');
divs.innerHTML = '<p style = \"color:#FF0000\">Price is in the wrong format, correct format e.g. 10.00</p>';
}
</script>";
}
if(!isset($error)){
$rows = getProductName($product_name);
if($rows > 0){
echo "<script language='javascript'>
window.onload = function(){
var divs = document.getElementById('error');
divs.innerHTML = '<p style = \"color:#FF0000\">Product name already exists!</p>';
}
</script>";
} else{
insertProduct($product_name, $description, $price, $category, $spice, $date_added) ;
echo "<script language='javascript'>
window.onload = function(){
var divs = document.getElementById('error');
divs.innerHTML = '<p style = \"color:#FF0000\">Record Inserted Successfully!</p>';
}
</script>";
}
} else{
echo $error;
}
} else{ echo "<script language='javascript'>
window.onload = function(){
var divs = document.getElementById('error');
divs.innerHTML = '<p style = \"color:#FF0000\">Please fill out all required (*) fields!</p>';
}
</script>";
}
?>
这很可能很简单,但我似乎看不出问题出在哪里。
更新:
表单太长,但这是一个包含以下字段的压缩版本:†
<form method="post" action="addProduct.php">
<ul class="form-style-1">
<div id="error"></div>
<h2>Add Product</h2>
<li> <label>Price: <span class="required">*</span></label> <input type="text" name="price" class="field-long" placeholder="Enter Price" /> </li>
</form>
†Hydra 在 2017-03-10 03:06:52Z 对answer 的评论添加
【问题讨论】:
标签: php mysql regex validation