這是驗證請求提交中的表單數據的單個函數的示例。變量true
已被設置,每個函數檢查驗證要求,然後繼續而不返回任何內容或返回false
並更改$check
值。底部的函數然後檢查$check
值是否已更改爲false
,如果它具有SQL語句將不會運行。我在將錯誤值返回給PHP中的函數時遇到問題
$check = true;
function productNameValidation(){
if(isset($_REQUEST['product_name']) && !empty($_REQUEST['product_name']) && preg_match("/^[A-Za-z0-9 :]*[A-Za-z0-9][A-Za-z0-9 :]{0,50}$/",($_REQUEST['product_name']))){
//then $valid['ID'] = "string: " . $_REQUEST['ID']
$valid['product_name'] = $_REQUEST['product_name'];
$err['product_name'] = "No errors";
//if not
} else {
if(empty($_REQUEST['product_name'])){
$valid['product_name'] = "No data entered!";
} else {
$valid['product_name'] = $_REQUEST['product_name'];
} //$err['ID'] = "error message"
$err['product_name'] = "Product Name must only contain letters, numbers and ':'!";
$check = false;
}
}
function checkProduct()
{
productNameValidation();
productGenreValidation();
productPriceValidation();
productEsrbValidation();
productThumbnailValidation();
releaseDateValidation();
return $check;
}
if($check == true)
{
//Insert into database
}
您的函數對一組共享變量進行操作,所以這些函數在每個函數中都必須聲明爲「全局」。更好的是,從它們開始創建一個類並使用對象成員(比如'$ this-> err')。 – georg 2015-02-11 09:01:21
我建議幾個人在這裏閱讀這個http://php.net/manual/en/language.variables.scope.php這篇文章的一些答案可能會導致未來的混亂。 – Edward 2015-02-11 09:58:38