public static function validateForm($aForm, $oModel) { //FlexiLogger::info(__METHOD__, print_r($oModel->toArray(), true)); foreach ($aForm as $sField => $aValue) { $sDBField = isset($aValue["#dbfield"]) ? $aValue["#dbfield"] : ""; //FlexiLogger::info(__METHOD__, $sDBField . "=" . $oModel->$sDBField); if (!empty($sDBField) && isset($aValue["#required"]) && $aValue["#required"]) { if (empty($oModel->{$sDBField})) { FlexiLogger::error(__METHOD__, $sDBField . "=" . $oModel->{$sDBField} . " is empty?"); throw new Exception($aValue["#title"] . " cannot be empty"); } } if (!empty($sDBField) && !empty($oModel->{$sDBField}) && $aValue["#type"] == "email") { if (!FlexiStringUtil::isValidEmail($oModel->{$sDBField})) { throw new Exception("Invalid email: " . $oModel->{$oModel}); } } } //foreach field }
/** * validate a form value populated by $_REQUEST * @param array $aForm merged with request value * @return boolean */ public function validateForm(&$aForm) { $bOK = true; foreach ($aForm as $sKey => &$mValue) { FlexiLogger::debug(__METHOD__, "validating: " . $sKey . ",val: " . @$mValue["#value"]); //is a form field, and is not already set value if ($sKey[0] != "#") { $bRequired = isset($mValue["#required"]) ? $mValue["#required"] : false; //echo $sKey. "\r\n<br>"; if ($bRequired && (!isset($mValue["#value"]) || isset($mValue["#value"]) && strlen($mValue["#value"]) == 0)) { //echo "is empty!"; //var_dump($mValue["#value"]); FlexiLogger::debug(__METHOD__, "validating: " . $sKey . ", is empty"); if (!isset($mValue["#notice"])) { $mValue["#notice"] = array("msg" => ""); } $mValue["#notice"]["msg"] .= flexiT("field is required") . "\r\n<br/>"; $bOK = false; } if ($mValue["#type"] == "email" && !empty($mValue["#value"])) { $bValid = FlexiStringUtil::isValidEmail($mValue["#value"]); if (!$bValid) { $bOK = false; if (!isset($mValue["#notice"])) { $mValue["#notice"] = array("msg" => ""); } //echo "invalid email"; FlexiLogger::debug(__METHOD__, "validating: " . $sKey . ", invalid email"); $mValue["#notice"]["msg"] .= flexiT("field must be an email") . "\r\n<br/>"; } } } } return $bOK; }
public function checkValidData($oRow, $sType) { foreach ($this->aChild["field"] as $sName => $oField) { //only check active, none deleted only if ($oField->iStatus == 1) { //check nulls $sFieldType = $oField->type; $sDBType = $oField->dbtype; $sField = $oField->getName(); $sValue = isset($oRow[$sField]) ? $oRow[$sField] : null; $sLabel = $oField->label; if ($sType == "update" && $oField->primary && (!isset($oRow[$sField]) || strlen($oRow[$sField] . "") < 1)) { throw new Exception($this->getTableName() . ", Field " . $oField->label . " is primary therefore, required for update" . print_r($oRow, true)); } if (!$oField->cannull) { if ($sType == "insert" && $oField->primary) { //is ok, since is primary } else { if (!isset($oRow[$sField])) { $sCanName = "input" . $sType; switch ($oField->{$sCanName}) { case "readonly": case "none": //is okay, we dont need it break; default: //we need it! throw new Exception("Field " . $oField->label . "(" . $this->getTableName() . ":" . $oField->getName() . ") is required"); } } else { if (strlen($oRow[$sField] . "") < 1) { throw new Exception("Field " . $oField->label . "(" . $this->getTableName() . ":" . $oField->getName() . ") is required"); } } } } if (strlen($sValue . "") > 0) { switch ($sDBType) { case "tinyint": case "int": if (!is_numeric($sValue)) { throw new Exception("Field " . $sLabel . " is not a number: " . $sValue . "(" . gettype($sValue) . ")"); } break; case "tinyint": if ($sValue < -127 || $sValue > 127) { throw new Exception("Field " . $sLabel . " is invalid: " . $sValue); } break; case "double": case "decimal": if (!is_numeric($sValue)) { throw new Exception("Field " . $sLabel . " is not a number"); } break; } switch ($sFieldType) { case "email": if (!FlexiStringUtil::isValidEmail($sValue)) { throw new Exception("Field " . $sLabel . " is not a valid email"); } break; } } //end if } //status } //foreach fields }