Exemplo n.º 1
0
 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
 }
Exemplo n.º 2
0
 /**
  * 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;
 }
Exemplo n.º 3
0
 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
 }