$formLang = new sfc\Form(SSP_Path(), "noTable", "languageform"); $formLang->tplf = "testDatatypeLanguage.tpl"; $formLang->formSubmitVar = 'testLanguagechange'; $formLang->fe('select', 'language', 'Language', Protect::$tranlator->getLanguages()); $formLang->fep('deflt = ' . $session->lang); $formLang->setParam('script', 'onChange="this.form.submit()"'); if ($formLang->processForm($_POST)) { $session->lang = $formLang->getField('language'); session_write_close(); SSP_Divert(SSP_Path()); } else { $setLanguage = $formLang->create(); } $form = new sfc\Form(SSP_Path(), "noTable", "testDatatype"); $form->tplf = "testDatatype.tpl"; $form->tda('lang', $session->lang); $form->tda('setLanguage', $setLanguage); $form->fe("text", "data", "Data to be checked"); $form->fep("dataType = gen"); $dataType = array("text" => "text " . $dataCheck->dataTypes["text"]->validChars, "password" => "password " . $dataCheck->dataTypes["password"]->validChars, "date" => "date " . $dataCheck->dataTypes["date"]->validChars, "time" => "time " . $dataCheck->dataTypes["time"]->validChars, "phone" => "phone " . $dataCheck->dataTypes["phone"]->validChars, "int" => "int " . $dataCheck->dataTypes["int"]->validChars, "real" => "real " . $dataCheck->dataTypes["real"]->validChars, "hex" => "hex " . $dataCheck->dataTypes["hex"]->validChars, "oct" => "oct " . $dataCheck->dataTypes["oct"]->validChars, "bin" => "bin " . $dataCheck->dataTypes["bin"]->validChars, "email" => "email " . $dataCheck->dataTypes["email"]->validChars, "emailchk" => "emailchk " . $dataCheck->dataTypes["email"]->validChars, "dom" => "dom " . $dataCheck->dataTypes["dom"]->validChars, "domchk" => "domchk " . $dataCheck->dataTypes["dom"]->validChars, "lable" => "lable " . $dataCheck->dataTypes["lable"]->validChars, "gen" => "general data, no checking at all!"); $form->fe("select", "dataType", "Data type to check against", $dataType); if ($form->processForm($_POST)) { if (!$form->error) { $error = $dataCheck->check($form->getField("dataType"), $form->getField("data")); $form->tda("errorNumber", $error); $form->tda("errorString", $dataCheck->errorMessage); echo $form->create(true); } } else { echo $form->create(true); }
/** * Check data for character errors, e.g. letters in a numeric field and return error objects * @param type $name * @param string $data - data to be checked * @param string $dataType - data type to check against * @param string $description - description of field or data * @param bool $local - generate local error for a form field * @return Error - error object or false */ private function dataCheck($data, $dataType, $description, $local = false) { /* data type, can be: text - 0 to 9, a - z, A - Z, \n \r \t . ' " + - _ space password - 0 to 9, a - z, A - Z dom - 0-9, a-z, A-Z, ._,/ at least one dot, : & etc. domchk - checks the domain email - <= 128 char, @, 0-9, a-z, A-Z, _.+- emailchk - also checks the domain date - 0 to 9, / time - 0 to 9, : phone - 0-9() +-. space int - 0-9 - real - 0-9 . - e hex - 0-9, a-f, A-F octal - 0-7 bin - 0,1 gen - any character - when re-displayed any special characters are converted to html special entities and then converted back to characters on submission */ if (trim($data) != "") { $result = $this->checkData->check($dataType, $data); if ($result !== 0) { // error return $errorText = ""; if (!isset($this->errorTextDataStrings[$result])) { $errorText = $this->t("No description for error code ") . $result; } elseif ($result === 1) { // character type error return if ($local) { $errorText = sprintf($this->t($this->errorTextDataStringsLocal[$result]), $this->checkData->errorMessage); } else { $errorText = sprintf($this->t($this->errorTextData), $this->t($description), sprintf($this->t($this->errorTextDataStrings[$result]), $this->checkData->errorMessage)); } } else { if ($local) { $errorText = $this->t($this->errorTextDataStringsLocal[$result]); } else { $errorText = sprintf($this->t($this->errorTextData), $this->t($description), $this->t($this->errorTextDataStrings[$result])); } } $return = new \w34u\ssp\sfc\Error($errorText); } else { $return = true; } } else { $return = true; } return $return; }
/** * Changes get and/or post parameters * @param any $param * @param string $paramName * @param bool $getParam - look in get vars first * @param string $dataType - data type to check */ function SSP_changeParam(&$param, $paramName, $getParam = true, $dataType = "lable") { $checkData = new CheckData(); $result = ""; $gotChange = false; if ($getParam) { if (isset($_GET[$paramName])) { $result = $_GET[$paramName]; $gotChange = true; } elseif (isset($_POST[$paramName])) { $result = $_POST[$paramName]; $gotChange = true; } } else { if (isset($_POST[$paramName])) { $result = $_POST[$paramName]; $gotChange = true; } elseif (isset($_GET[$paramName])) { $result = $_GET[$paramName]; $gotChange = true; } } if ($gotChange and !$checkData->check($dataType, $result)) { $param = $result; } }