/** * Ensures that a validator may break the chain * * @return void */ public function testBreakChainOnFailure() { $this->_validator->addValidator(new Zend_ValidateTest_False(), true)->addValidator(new Zend_ValidateTest_False()); $this->assertFalse($this->_validator->isValid(null)); $this->assertEquals(array('validation failed'), $this->_validator->getMessages()); $this->assertEquals(array('error'), $this->_validator->getErrors()); }
public function mailAction() { $error = array(); $posts = array('First Name' => $_POST['first_name'], 'Last Name' => $_POST['last_name'], 'Email' => $_POST['email'], 'Message' => $_POST['message']); $validatorChain = new Zend_Validate(); $validatorChain->addValidator(new Zend_Validate_NotEmpty()); $valid_email = new Zend_Validate_EmailAddress(); if ($valid_email->isValid($posts['Email'])) { } else { foreach ($valid_email->getMessages() as $message) { $error[] = "Email {$message}\n"; } } foreach ($posts as $key => $post) { if ($validatorChain->isValid($post)) { } else { foreach ($validatorChain->getMessages() as $message) { $error[] = "{$key} {$message}\n"; } } } if (count($error) != 0) { $this->view->alerts = $error; } else { $to = '*****@*****.**'; $subject = 'Email from Illustrated Portland'; $message = $posts['Message']; $headers = "From: {$posts['First Name']} {$posts['Last Name']} <{$posts['Email']}>"; mail($to, $subject, $message, $headers); //$this->view->alerts = array("Thank You! Your message has been sent."); } }
/** * Make sure the user is valid * * @return void */ public function isValid($value) { $valid = true; $this->_user = $value; $namePartsValidator = new Zend_Validate(); $namePartsValidator->addValidator(new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::STRING))->addValidator(new Zend_Validate_Alpha(array('allowWhiteSpace' => true)))->addValidator(new Zend_Validate_StringLength(array('min' => 2))); if (!$namePartsValidator->isValid($this->_user->getFirstName())) { $valid = false; $this->_error($this->_view->translate('The first name must have at least 2 characters and consist only of letters')); } if (!$namePartsValidator->isValid($this->_user->getLastName())) { $valid = false; $this->_error($this->_view->translate('The last name must have at least 2 characters and consist only of letters')); } $emailValidator = new Zend_Validate_EmailAddress(); if (!$emailValidator->isValid($this->_user->getEmail())) { $valid = false; $this->_error($this->_view->translate('You must entre a valid email')); } if ($this->_user->isNew()) { $usernameValidator = new Zend_Validate(); $usernameValidator->addValidator(new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::STRING))->addValidator(new Zend_Validate_Alnum(array('allowWhiteSpace' => false)))->addValidator(new Zend_Validate_StringLength(array('min' => 5))); if (!$usernameValidator->isValid($this->_user->getUsername())) { $this->_error($this->_view->translate('The username must have at least 5 characters and contains no white spaces')); } } return $valid; }
public function indexAction() { $emailValidator = new Zend_Validate_EmailAddress(); $nameValidator = new Zend_Validate_NotEmpty(array(Zend_Validate_NotEmpty::STRING, Zend_Validate_NotEmpty::SPACE)); $password1_Validator = new Zend_Validate(); $password1_Validator->addValidator(new Zend_Validate_StringLength(array('min' => 6, 'max' => 12)))->addValidator(new Zend_Validate_Alnum()); $password2_Validator = new Zend_Validate(); $password2_Validator->addValidator(new Zend_Validate_StringLength(array('min' => 6, 'max' => 12)))->addValidator(new Zend_Validate_Alnum()); $captcha = new Zend_Captcha_Image(); $captcha->setName('captchaword')->setFont(APPLICATION_PATH . '/data/arial.ttf')->setFontSize(28)->setImgDir(APPLICATION_PATH . '/../public/img')->setImgUrl('/img')->setWordLen(5)->setDotNoiseLevel(20)->setExpiration(300); $request = $this->getRequest(); $post = $request->getPost(); // $passwordIdentical = new Zend_Validate_Identical(array('token' => $post['password1'])); $messages = array(); $error = array(); $noValiError = true; if ($this->getRequest()->isPost()) { if (!$emailValidator->isValid($post['user-email'])) { $error['user-emailVali'] = '請輸入正確的Email帳號'; $noValiError = false; } if (!$nameValidator->isValid($post['name'])) { $error['nameVali'] = '姓名必填'; $noValiError = false; } if (!$password1_Validator->isValid($post['password1'])) { $error['password1_Vali'] = '1.密碼長度需介於6~12之間,而且只能使用數字、英文'; $noValiError = false; } if (!$password2_Validator->isValid($post['password2'])) { $error['password2_Vali'] = '1.密碼長度需介於6~12之間,而且只能使用數字、英文'; $noValiError = false; } if (isset($post['password1']) && isset($post['password2']) && !($post['password1'] == $post['password2'])) { $error['passwordIdentical'] = '2.密碼輸入不同'; $noValiError = false; } if (!($post['agree'] == 1)) { $error['agreeVali'] = '需同意服務條款及隱私權政策,才可以註冊'; $noValiError = false; } if (!$captcha->isValid($post['captchaword'])) { $error['captchawordVali'] = '認證碼輸入錯誤'; $noValiError = false; } if ($noValiError) { // register process $this->_signup($post); $this->view->messages = $post; $this->redirect('index/index'); } else { $this->_genCaptcha($captcha); $this->view->error = $error; $this->view->messages = $post; } } else { $this->_genCaptcha($captcha); } }
/** * Security checks * * @throws Exception * @return void */ public function security() { if (!$this->validator->isValid($this->get_request())) { foreach ($this->validator->getMessages() as $message) { throw new Exception($message); } } }
/** * Constructor. * * @param string $host OPTIONAL Hostname of remote connection (default: 127.0.0.1) * @param integer $port OPTIONAL Port number (default: null) * @throws Zend_Mail_Protocol_Exception * @return void */ public function __construct($host = '127.0.0.1', $port = null) { $this->_validHost = new Zend_Validate(); $this->_validHost->addValidator(new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_ALL)); if (!$this->_validHost->isValid($host)) { require_once 'Zend/Mail/Protocol/Exception.php'; throw new Zend_Mail_Protocol_Exception(join(', ', $this->_validHost->getMessages())); } $this->_host = $host; $this->_port = $port; }
public function validInput($data) { $validator = new Zend_Validate(); //$validator->addValidator(new Zend_Validate_Int()); if ($validator->isValid($data)) { return $data; } else { //$this->_model->isValid = false; return $this->_info['errMsg']; } }
public function __construct($arrParam = array(), $options = null) { ////////////////////////////////// //Kiem tra Name ///////////// ////////////////////////////////// if ($arrParam['action'] == 'add') { $options = array('table' => 'da_album', 'field' => 'album_name'); } elseif ($arrParam['action'] == 'edit') { $options = array('table' => 'da_album', 'field' => 'album_name', 'exclude' => array('field' => 'id', 'value' => $arrParam['id'])); } $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_NotEmpty(), true)->addValidator(new Zend_Validate_StringLength(3, 100), true); if (!$validator->isValid($arrParam['album_name'])) { $message = $validator->getMessages(); $this->_messageError['album_name'] = 'Tên album: ' . current($message); $arrParam['album_name'] = ''; } ////////////////////////////////// //Kiem tra Picture small /////////// ////////////////////////////////// $upload = new Zend_File_Transfer_Adapter_Http(); $fileInfo = $upload->getFileInfo('picture'); $fileName = $fileInfo['picture']['name']; if (!empty($fileName)) { $upload->addValidator('Extension', true, array('jpg', 'gif', 'png'), 'picture'); $upload->addValidator('Size', true, array('min' => '2KB', 'max' => '1000KB'), 'picture'); if (!$upload->isValid('picture')) { $message = $upload->getMessages(); $this->_messageError['picture'] = 'Hình ảnh đại diện: ' . current($message); } } ////////////////////////////////// //Kiem tra Order ///////////// ////////////////////////////////// $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_StringLength(1, 10), true)->addValidator(new Zend_Validate_Digits(), true); if (!$validator->isValid($arrParam['order'])) { $message = $validator->getMessages(); $this->_messageError['order'] = 'Sắp xếp: ' . current($message); $arrParam['order'] = ''; } ////////////////////////////////// //Kiem tra Status ///////////// ////////////////////////////////// if (empty($arrParam['status']) || !isset($arrParam['status'])) { $arrParam['status'] = 0; } //======================================== // TRUYEN CAC GIA TRI DUNG VAO MANG $_arrData //======================================== $this->_arrData = $arrParam; }
public function isValidText($value, $maxLenghtValue) { $validator = new Zend_Validate(); // Create a validator chain and add validators to it $validator->addValidator(new Zend_Validate_NotEmpty())->addValidator(new Zend_Validate_StringLength(1, $maxLenghtValue)); // Validate the value if ($validator->isValid($value)) { return true; } else { // value failed validation; print reasons foreach ($validator->getMessages() as $message) { return array('Error' => $message); } } }
/** * login page : 1. Validation 2. Login process */ public function indexAction() { $passwordValidator = new Zend_Validate(); $passwordValidator->addValidator(new Zend_Validate_StringLength(array('min' => 6, 'max' => 12)))->addValidator(new Zend_Validate_Alnum()); $emailValidator = new Zend_Validate_EmailAddress(); $captcha = new Zend_Captcha_Image(); $captcha->setName('captchaword')->setFont(APPLICATION_PATH . '/data/arial.ttf')->setFontSize(28)->setImgDir(APPLICATION_PATH . '/../public/img')->setImgUrl('/img')->setWordLen(5)->setDotNoiseLevel(20)->setExpiration(300); $request = $this->getRequest(); $post = $request->getPost(); $messages = array(); $noValiError = true; if ($this->getRequest()->isPost()) { if (!$passwordValidator->isValid($post['password'])) { $messages['passwordVali'] = '密碼長度需介於6~12之間,而且只能使用數字、英文'; $noValiError = false; } if (!$emailValidator->isValid($post['user-email'])) { $messages['user-emailVali'] = '請輸入正確的Email帳號'; $noValiError = false; } if (!$captcha->isValid($post['captchaword'])) { $messages['captchawordVali'] = '認證碼輸入錯誤'; $noValiError = false; } $messages['password'] = $post['password']; $messages['user-email'] = $post['user-email']; if ($noValiError) { // login process $this->_checkAccount($post); $this->view->messages = $messages; } else { $this->_genCaptcha($captcha); $this->view->messages = $messages; } } else { $this->_genCaptcha($captcha); } if (Zend_Auth::getInstance()->hasIdentity() && $noValiError) { $this->redirect('index/index'); } }
public function loadById($globalData, $object_id) { $validatorChain = new Zend_Validate(); $validatorChain->addValidator(new Zend_Validate_Int()); if (!$validatorChain->isValid($object_id)) { return NULL; } $db = $globalData->takeConnection(); $table = new RealEstateAgency_Database_Area_Table(array('db' => $db)); $where = $db->quoteInto('obj_id = ?', $object_id); $rowset = $table->fetchAll($where); $row = $rowset->current(); if ($row) { $new_object = new RealEstateAgency_Object_Area(); $new_object->setGlobalData($globalData); $new_object->fillByZendRow($row); return $new_object; } else { return NULL; } }
public function __construct($arrParam = array(), $options = null) { ////////////////////////////////// //Kiem tra group_name ///////////// ////////////////////////////////// if ($arrParam['action'] == 'add') { $options = array('table' => 'da_user_group', 'field' => 'group_name'); } elseif ($arrParam['action'] == 'edit') { $options = array('table' => 'da_user_group', 'field' => 'group_name', 'exclude' => array('field' => 'id', 'value' => $arrParam['id'])); } $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_NotEmpty(), true)->addValidator(new Zend_Validate_StringLength(3, 32), true)->addValidator(new Zend_Validate_Regex('#^[a-zA-Z0-9\\-_\\.\\s]+$#'), true)->addValidator(new Zend_Validate_Db_NoRecordExists($options), true); if (!$validator->isValid($arrParam['group_name'])) { $message = $validator->getMessages(); $this->_messageError['group_name'] = 'Group name: ' . current($message); $arrParam['group_name'] = ''; } ////////////////////////////////// //Kiem tra Avatar /////////// ////////////////////////////////// $upload = new Zend_File_Transfer_Adapter_Http(); $fileInfo = $upload->getFileInfo('avatar'); $fileName = $fileInfo['avatar']['name']; if (!empty($fileName)) { $upload->addValidator('Extension', true, array('jpg', 'gif', 'png'), 'avatar'); $upload->addValidator('Size', true, array('min' => '2KB', 'max' => '1000KB'), 'avatar'); if (!$upload->isValid('avatar')) { $message = $upload->getMessages(); $this->_messageError['avatar'] = 'Avatar: ' . current($message); } } ////////////////////////////////// //Kiem tra ranking /////////// ////////////////////////////////// $upload = new Zend_File_Transfer_Adapter_Http(); $fileInfo = $upload->getFileInfo('ranking'); $fileName = $fileInfo['ranking']['name']; if (!empty($fileName)) { $upload->addValidator('Extension', true, array('jpg', 'gif', 'png'), 'ranking'); $upload->addValidator('Size', true, array('min' => '2KB', 'max' => '1000KB'), 'ranking'); if (!$upload->isValid('ranking')) { $message = $upload->getMessages(); $this->_messageError['ranking'] = 'Ranking: ' . current($message); } } ////////////////////////////////// //Kiem tra Admin Control Panel ///////////// ////////////////////////////////// if (empty($arrParam['group_acp']) || !isset($arrParam['group_acp'])) { $arrParam['group_acp'] = 0; } ////////////////////////////////// //Kiem tra Group Default ///////////// ////////////////////////////////// if (empty($arrParam['group_default']) || !isset($arrParam['group_default'])) { $arrParam['group_default'] = 0; } ////////////////////////////////// //Kiem tra Status ///////////// ////////////////////////////////// if (empty($arrParam['status']) || !isset($arrParam['status'])) { $arrParam['status'] = 0; } ////////////////////////////////// //Kiem tra order ///////////// ////////////////////////////////// $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_Digits(), true); if (!$validator->isValid($arrParam['order'])) { $message = $validator->getMessages(); $this->_messageError['order'] = 'Order: ' . current($message); $arrParam['order'] = ''; } //======================================== // TRUYEN CAC GIA TRI DUNG VAO MANG $_arrData //======================================== $this->_arrData = $arrParam; }
function editAction() { $errors = array(); $users_table = new Users(); $users_roles_table = new UsersRoles(); $request = new Bolts_Request($this->getRequest()); $countries_table = new Countries(); $this->view->countries = $countries_table->getCountriesArray('Choose a country...'); $roles_table = new Roles(); $roles = $roles_table->fetchAll(NULL, "shortname ASC"); $arRoles = array(); foreach ($roles as $role) { if (!strpos($role->shortname, "-base")) { $arRoles[$role->id] = $role->description; } } $this->view->roles = $arRoles; $is_new = true; $user = array(); if ($request->has('username')) { $obUser = $users_table->fetchByUsername($request->username); if (!is_null($obUser)) { $is_new = false; $user_roles = $users_roles_table->fetchAll($users_roles_table->select()->where("username = ?", $obUser->username)); if (count($user_roles) > 0) { $tmp_selected = array(); foreach ($user_roles as $user_role) { $tmp_selected[] = $user_role->role_id; } $this->view->selected_roles = $tmp_selected; } $user = $obUser->toArray(); } } $this->view->is_new = $is_new; if ($is_new) { // defaults for form fields $user['username'] = ""; $user['full_name'] = ""; $user['aboutme'] = ""; } $pre_render = $this->_Bolts_plugin->doFilter($this->_mca . "_pre_render", array('user' => $user, 'request' => $this->_request)); // FILTER HOOK $user = $pre_render['user']; foreach ($pre_render as $key => $value) { if ($key != "user") { $this->view->{$key} = $value; } } // $tags = unserialize($user['tags']); if ($this->getRequest()->isPost()) { $errors = array(); $request->stripTags(array('full_name', 'email', 'newpassword', 'confirm')); // $request->stripTags(array('full_name', 'email', 'newpassword', 'confirm', 'aboutme')); $user['username'] = $request->username; $user['email'] = $request->email; $user['password'] = $request->newpassword; $user['confirm'] = $request->confirm; $user['full_name'] = $request->full_name; $user['birthday'] = $birthday = strtotime($request->Birthday_Day . $request->Birthday_Month . $request->Birthday_Year); $user['gender'] = $request->gender; $user['country_code'] = $request->country_code; $user['aboutme'] = $request->aboutme; // validate username $username_validator = new Zend_Validate(); $username_validator->addValidator(new Zend_Validate_StringLength(1, Bolts_Registry::get('username_length'))); $username_validator->addValidator(new Zend_Validate_Alnum()); if (!$username_validator->isValid($user['username'])) { $show_username = "******" . $user['username'] . "'"; if (trim($user['username']) == "") { $show_username = "******" . $this->_T("empty") . "]"; } $errors[] = $this->_T("%s isn't a valid username. (Between %d and %d characters, only letters and numbers)", array($show_username, 1, Bolts_Registry::get('username_length'))); } if ($is_new) { $user_where = $users_table->getAdapter()->quoteInto('username = ?', $user['username']); if ($users_table->getCountByWhereClause($user_where) > 0) { $errors[] = $this->_T("The username '%s' is already in use", $user['username']); } } // validate email if (!Bolts_Validate::checkEmail($user['email'])) { $errors[] = $this->_T("Email is not valid"); } // check to see if email is in use already by someone else if ($users_table->isEmailInUse($user['email'], $user['username'])) { $errors[] = $this->_T("Email already in use"); } // if password isn't blank, validate it if ($user['password'] != "") { if (!Bolts_Validate::checkLength($user['password'], 6, Bolts_Registry::get('password_length'))) { $errors[] = $this->_T("Password must be between 6 and 32 characters"); } // if password is set, make sure it matches confirm if ($user['password'] != $user['confirm']) { $errors[] = $this->_T("Passwords don't match"); } } // convert birthday_ts to mysql date $birthday = date("Y-m-d H:i:s", $user['birthday']); $params = array('request' => $request, 'user' => $user, 'errors' => $errors); // upload new avatar image if present if (array_key_exists('filedata', $_FILES)) { if ($_FILES['filedata']['tmp_name'] != '') { $destination_path = Bolts_Registry::get('upload_path') . "/" . $user['username'] . "/original"; if (!is_dir($destination_path)) { mkdir($destination_path, 0777, true); Bolts_Log::report("Creating user folder at " . $destination_path, null, Zend_Log::DEBUG); } if (file_exists($destination_path . "/avatar")) { unlink($destination_path . "/avatar"); Bolts_Log::report("Deleted existing user avatar from " . $destination_path, null, Zend_Log::DEBUG); } else { Bolts_Log::report("User avatar did not exist in " . $destination_path, null, Zend_Log::DEBUG); } move_uploaded_file($_FILES['filedata']['tmp_name'], $destination_path . "/avatar"); Users::clearUserCache($user['username']); Bolts_Log::report("User avatar uploaded to " . $destination_path, null, Zend_Log::DEBUG); $params['user']['hasnewfile'] = true; } else { $params['user']['hasnewfile'] = false; } } $additional = $this->_Bolts_plugin->doFilter($this->_mca . "_pre_save", $params); // FILTER HOOK $errors = $additional['errors']; $user = $additional['user']; $users_roles_table->delete($users_roles_table->getAdapter()->quoteInto("username = ?", $user['username'])); foreach ($request->role_ids as $role_id) { $role_data = array("username" => $user['username'], "role_id" => $role_id); $users_roles_table->insert($role_data); } if (count($errors) == 0) { /********** Commented out due to Plug-in compatibility issues. $data = array( 'email' => $user['email'], 'birthday' => $birthday, 'aboutme' => nl2br($user['aboutme']), 'gender' => $user['gender'], 'full_name' => $user['full_name'], 'country_code' => $user['country_code'], 'last_modified_on' => date(DB_DATETIME_FORMAT), ); **********/ $user['birthday'] = $birthday; $user['aboutme'] = nl2br($user['aboutme']); $user['last_modified_on'] = date(DB_DATETIME_FORMAT); // This is a hold-over value from the form. unset($user['confirm']); if ($user['password'] != "") { #$data['password'] = $user['password']; } else { unset($user['password']); } if ($is_new) { // TODO - stuff? really? $stuff = array('request' => $request, 'user' => $user, 'errors' => $errors); $additional1 = $this->_Bolts_plugin->doFilter($this->_mca, $stuff); // FILTER HOOK $errors = $additional1['errors']; $user = $additional1['user']; $data['username'] = $user['username']; #$data['created_on'] = date(DB_DATETIME_FORMAT); $user['created_on'] = date(DB_DATETIME_FORMAT); $users_table->insert($user); $this->view->success = "Profile created."; } else { $where = $users_table->getAdapter()->quoteInto('username = ?', $user['username']); #$users_table->update($data, $where); $users_table->update($user, $where); $this->view->success = "Profile updated."; } } else { $this->view->errors = $errors; } } $this->view->end_year = -Bolts_Registry::get('minimum_registration_age'); $this->view->genders = Bolts_Common::getGenderArray(); $user['aboutme'] = Bolts_Common::br2nl($user['aboutme']); $this->view->user = $user; }
/** * Validate the normalized new value. * Returns true if there are no validators or if validation passes, * returns the array of error messages if validators fail. * * @return boolean|array */ public function isValid() { if ($this->_validator_chain === null) { return true; } if ($this->_validator_chain->isValid($this->getNormalizedNewValue())) { return true; } return $this->_validator_chain->getMessages(); }
/** * @return bool */ public function isValid() { $tableColumns = $this->_table->getColumns(); $dirtyColumns = $this->_data->getModified(); foreach ($dirtyColumns as $key => $value) { unset($dirtyColumns[$key]); $dirtyColumns[strtolower($key)] = $value; } #die(Zend_Debug::dump($tableColumns)); foreach ($tableColumns as $columnName => $columnStructure) { if (array_key_exists($columnName, $dirtyColumns)) { $validatorChain = new Zend_Validate(); // Notnull if (array_key_exists('notnull', $columnStructure)) { $validatorChain->addValidator(new Zend_Validate_NotEmpty(array('string' => true, 'empty_array' => true, 'null' => true, 'space' => true))); } // Email if (array_key_exists('email', $columnStructure)) { $validatorChain->addValidator(new Zend_Validate_EmailAddress()); } // Notblank if (array_key_exists('notblank', $columnStructure)) { $validatorChain->addValidator(new Kebab_Validate_NotBlank()); } // Nospace if (array_key_exists('nospace', $columnStructure)) { // check null $validatorChain->addValidator(new Zend_Validate_NotEmpty(array('null' => true))); // check space $validatorChain->addValidator(new Zend_Validate_Regex(array('pattern' => '/\\s/'))); } // Past // Future // Min Length if (array_key_exists('minlength', $columnStructure)) { $validatorChain->addValidator(new Zend_Validate_GreaterThan(array('min' => $columnStructure['minlength']))); } // Country // Ip if (array_key_exists('ip', $columnStructure)) { $validatorChain->addValidator(new Zend_Validate_Ip()); } // HtmlColor // Range if (array_key_exists('range', $columnStructure)) { $validatorChain->addValidator(new Zend_Validate_Between(array('min' => $columnStructure['range'][0], 'max' => $columnStructure['range'][1]))); } //Unique if (array_key_exists('unique', $columnStructure)) { $validatorChain->addValidator(new Kebab_Validate_Unique($columnName, $this->_data)); } // Regex if (array_key_exists('regexp', $columnStructure)) { $validatorChain->addValidator(new Zend_Validate_Regex(array('pattern' => $columnStructure['regexp']))); } // Digits if (array_key_exists('digits', $columnStructure)) { $validatorChain->addValidator(new Zend_Validate_Digits()); } // Date if (array_key_exists('date', $columnStructure)) { $validatorChain->addValidator(new Zend_Validate_Date()); } // CC if (array_key_exists('cc', $columnStructure)) { $validatorChain->addValidator(new Zend_Validate_CreditCard()); } // Unsigned // Check All if (!$validatorChain->isValid($dirtyColumns[$columnName])) { $translator = Zend_Registry::get('Zend_Translate'); Zend_Validate_Abstract::setDefaultTranslator($translator); $this->_errors[$columnName] = $validatorChain->getMessages(); } unset($validatorChain); } } if (count($this->_errors) > 0) { return false; } else { return true; } }
/** * Validate that the receiver ID is well-formed according to it's type * * @param string $value * @param string $type Either EMAIL or PAYPAL ID * @return boolean */ public static function validateReceiverType($value, $type) { switch ($type) { case self::RT_EMAIL: if (!self::$emailValidator) { require_once 'Zend/Validate/EmailAddress.php'; self::$emailValidator = new Zend_Validate_EmailAddress(); } return self::$emailValidator->isValid($value); break; case self::RT_USERID: if (!self::$useridValidator) { require_once 'Zend/Validate.php'; require_once 'Zend/Validate/StringLength.php'; require_once 'Zend/Validate/Alnum.php'; self::$useridValidator = new Zend_Validate(); self::$useridValidator->addValidator(new Zend_Validate_StringLength(13))->addValidator(new Zend_Validate_Alnum()); } return self::$useridValidator->isValid($value); break; default: require_once 'Zend/Service/PayPal/Data/Exception.php'; throw new Zend_Service_PayPal_Data_Exception("'{$type}' is not a valid Receiver ID type"); break; } }
/** * Validate file * * @throws Mage_Core_Exception * @param array $optionValue * @return Mage_Catalog_Model_Product_Option_Type_Default */ protected function _validateFile($optionValue) { $option = $this->getOption(); /** * @see Mage_Catalog_Model_Product_Option_Type_File::_validateUploadFile() * There setUserValue() sets correct fileFullPath only for * quote_path. So we must form both full paths manually and * check them. */ $checkPaths = array(); if (isset($optionValue['quote_path'])) { $checkPaths[] = Mage::getBaseDir() . $optionValue['quote_path']; } if (isset($optionValue['order_path']) && !$this->getUseQuotePath()) { $checkPaths[] = Mage::getBaseDir() . $optionValue['order_path']; } $fileFullPath = null; foreach ($checkPaths as $path) { if (!$this->_filesystem->isFile($path)) { if (!Mage::helper('Mage_Core_Helper_File_Storage_Database')->saveFileToFilesystem($fileFullPath)) { continue; } } $fileFullPath = $path; break; } if ($fileFullPath === null) { return false; } $validatorChain = new Zend_Validate(); $_dimentions = array(); if ($option->getImageSizeX() > 0) { $_dimentions['maxwidth'] = $option->getImageSizeX(); } if ($option->getImageSizeY() > 0) { $_dimentions['maxheight'] = $option->getImageSizeY(); } if (count($_dimentions) > 0 && !$this->_isImage($fileFullPath)) { return false; } if (count($_dimentions) > 0) { $validatorChain->addValidator(new Zend_Validate_File_ImageSize($_dimentions)); } // File extension $_allowed = $this->_parseExtensionsString($option->getFileExtension()); if ($_allowed !== null) { $validatorChain->addValidator(new Zend_Validate_File_Extension($_allowed)); } else { $_forbidden = $this->_parseExtensionsString($this->getConfigData('forbidden_extensions')); if ($_forbidden !== null) { $validatorChain->addValidator(new Zend_Validate_File_ExcludeExtension($_forbidden)); } } // Maximum file size $maxFileSize = $this->getFileSizeService()->getMaxFileSize(); $validatorChain->addValidator(new Zend_Validate_File_FilesSize(array('max' => $maxFileSize))); if ($validatorChain->isValid($fileFullPath)) { $ok = $this->_filesystem->isReadable($fileFullPath) && isset($optionValue['secret_key']) && substr(md5($this->_filesystem->read($fileFullPath)), 0, 20) == $optionValue['secret_key']; return $ok; } elseif ($validatorChain->getErrors()) { $errors = $this->_getValidatorErrors($validatorChain->getErrors(), $optionValue); if (count($errors) > 0) { $this->setIsValid(false); Mage::throwException(implode("\n", $errors)); } } else { $this->setIsValid(false); Mage::throwException(Mage::helper('Mage_Catalog_Helper_Data')->__('Please specify the product required option(s)')); } }
public function przypomnijhaslopotwierdzAction() { // action body if ($this->_request->isXmlHttpRequest()) { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $post = $this->_request->getPost(); $return = array('haslo' => true, 'test_nowe_haslo' => true); $ile_poprawnych = count($return) - 1; $zwroconych = 0; // haslo $notEmpty = new Zend_Validate_NotEmpty(); $validatorString = new Zend_Validate(); $validatorString->addValidator(new Zend_Validate_Alnum(), true); $validatorString->addValidator(new Zend_Validate_StringLength(array('min' => 6))); //$validatorString->addValidator(new Zend_Validate_Regex('/^[a-zA-Z0-9.]+$/')); if (!$notEmpty->isValid($post['haslo']) || !$notEmpty->isValid($post['haslo2'])) { $return['haslo'] = 'null'; } elseif ($post['haslo'] != $post['haslo2']) { $return['haslo'] = 'diferent'; } elseif (!$validatorString->isValid($post['haslo']) || !$validatorString->isValid($post['haslo2'])) { $return['haslo'] = 'incorect'; } else { $salt = TS_Salt::getSalt3(); $haslo = sha1($salt . $salt . $post['haslo'] . 69); $return['test_nowe_haslo'] = $haslo; $zwroconych++; } /**/ // finalizowanie if ($ile_poprawnych == $zwroconych) { try { $User = new Application_Model_DbTable_UzytkownicyWww(); $dane = array('password' => $haslo, 'salt' => $salt); $User->update($dane, array('salt = ?' => $post['salt'])); /*$mail = new TS_Mail(); $mail_dane = array( 'to' => '', 'subject' => 'Zmiana hasła', 'view' => array( 'script' => 'zmianahasla', 'params' => array() )); $mail->send($mail_dane);/**/ } catch (Exception $ex) { die($ex->getMessage()); } } /**/ echo json_encode($return); } else { $User = new Application_Model_DbTable_UzytkownicyWww(); //echo 'dupa:'.$this->_request->getParam("salt"); if ($this->_request->getParam("salt") && $User->czySalt($this->_request->getParam("salt"))) { $this->view->nowehaslo = new Application_Form_ZmianaHasla(); } else { return $this->_helper->redirector('brakautoryzacji', 'user'); } } }
public function __construct($arrParam = array(), $options = null) { ////////////////////////////////// //Kiem tra User Name ///////////// ////////////////////////////////// if ($arrParam['action'] == 'add') { $options = array('table' => 'da_users', 'field' => 'user_name'); } elseif ($arrParam['action'] == 'edit') { $options = array('table' => 'da_users', 'field' => 'user_name', 'exclude' => array('field' => 'id', 'value' => $arrParam['id'])); } $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_NotEmpty(), true)->addValidator(new Zend_Validate_StringLength(3, 32), true)->addValidator(new Zend_Validate_Regex('#^[a-zA-Z0-9\\-_\\.\\s]+$#'), true)->addValidator(new Zend_Validate_Db_NoRecordExists($options), true); if (!$validator->isValid($arrParam['user_name'])) { $message = $validator->getMessages(); $this->_messageError['user_name'] = 'User name: ' . current($message); $arrParam['user_name'] = ''; } ////////////////////////////////// //Kiem tra User Avatar /////////// ////////////////////////////////// $upload = new Zend_File_Transfer_Adapter_Http(); $fileInfo = $upload->getFileInfo('user_avatar'); $fileName = $fileInfo['user_avatar']['name']; if (!empty($fileName)) { $upload->addValidator('Extension', true, array('jpg', 'gif', 'png'), 'user_avatar'); $upload->addValidator('Size', true, array('min' => '2KB', 'max' => '1000KB'), 'user_avatar'); if (!$upload->isValid('user_avatar')) { $message = $upload->getMessages(); $this->_messageError['user_avatar'] = 'Avatar: ' . current($message); } } ////////////////////////////////// //Kiem tra Password ///////////// ////////////////////////////////// $flag = false; if ($arrParam['action'] == 'add') { $flag = true; } elseif ($arrParam['action'] == 'edit') { if (empty($arrParam['password'])) { $flag = false; } else { $flag = true; } } if ($flag == true) { $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_NotEmpty(), true)->addValidator(new Zend_Validate_StringLength(3, 32), true)->addValidator(new Zend_Validate_Regex('#^[a-zA-Z0-9@\\#\\$%\\^&\\*\\-\\+]+$#'), true); if (!$validator->isValid($arrParam['password'])) { $message = $validator->getMessages(); $this->_messageError['password'] = '******' . current($message); } } ////////////////////////////////// //Kiem tra Email //////////////// ////////////////////////////////// if ($arrParam['action'] == 'add') { $options = array('table' => 'da_users', 'field' => 'email'); } elseif ($arrParam['action'] == 'edit') { $options = array('table' => 'da_users', 'field' => 'email', 'exclude' => array('field' => 'id', 'value' => $arrParam['id'])); } $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_NotEmpty(), true)->addValidator(new Zend_Validate_EmailAddress(), true)->addValidator(new Zend_Validate_Db_NoRecordExists($options), true); if (!$validator->isValid($arrParam['email'])) { $message = $validator->getMessages(); $this->_messageError['email'] = 'Email: ' . current($message); $arrParam['email'] = ''; } ////////////////////////////////// //Kiem tra Group Name //////////// ////////////////////////////////// if ($arrParam['group_id'] == 0) { $this->_messageError['group_id'] = 'Group Name: Please choose Group Name'; } ////////////////////////////////// //Kiem tra First Name ///////////// ////////////////////////////////// $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_NotEmpty(), true)->addValidator(new Zend_Validate_StringLength(2), true); if (!$validator->isValid($arrParam['first_name'])) { $message = $validator->getMessages(); $this->_messageError['first_name'] = 'First Name: ' . current($message); $arrParam['first_name'] = ''; } ////////////////////////////////// //Kiem tra Last Name ///////////// ////////////////////////////////// $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_NotEmpty(), true)->addValidator(new Zend_Validate_StringLength(2), true); if (!$validator->isValid($arrParam['last_name'])) { $message = $validator->getMessages(); $this->_messageError['last_name'] = 'Last Name: ' . current($message); $arrParam['last_name'] = ''; } ////////////////////////////////// //Kiem tra Birthday ///////////// ////////////////////////////////// $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_NotEmpty(), true)->addValidator(new Zend_Validate_Date(array('format' => 'YYYY-mm-dd')), true); if (!$validator->isValid($arrParam['birth_day'])) { $message = $validator->getMessages(); $this->_messageError['birth_day'] = 'Birthday: ' . current($message); $arrParam['birth_day'] = ''; } ////////////////////////////////// //Kiem tra Status ///////////// ////////////////////////////////// if (empty($arrParam['status']) || !isset($arrParam['status'])) { $arrParam['status'] = 0; } ////////////////////////////////// //Kiem tra Sign ///////////// ////////////////////////////////// $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_NotEmpty(), true)->addValidator(new Zend_Validate_StringLength(20), true); if (!$validator->isValid($arrParam['sign'])) { $message = $validator->getMessages(); $this->_messageError['sign'] = 'Sign: ' . current($message); $arrParam['sign'] = ''; } //======================================== // TRUYEN CAC GIA TRI DUNG VAO MANG $_arrData //======================================== $this->_arrData = $arrParam; }
/** * @return void * @throws Zend_Validate_Exception */ protected function _processValidatorRules() { foreach ($this->_validatorRules as $ruleName => $validatorRule) { if (!is_array($validatorRule)) { $validatorRule = array($validatorRule); } $validatorList = array(); foreach ($validatorRule as $key => $value) { if (is_int($key)) { $validatorList[] = $value; } } // set defaults if (!isset($validatorRule[self::BREAK_CHAIN])) { $validatorRule[self::BREAK_CHAIN] = false; } if (!isset($validatorRule[self::FIELD])) { $validatorRule[self::FIELD] = $ruleName; } if (!isset($validatorRule[self::PRESENCE])) { $validatorRule[self::PRESENCE] = self::PRESENCE_OPTIONAL; } $validatorChain = new Zend_Validate(); foreach ($validatorList as $validator) { if (is_string($validator)) { $validator = $this->_getValidator($validator); } if (!($validator && $validator instanceof Zend_Validate_Interface)) { require_once 'Zend/Validate/Exception.php'; throw new Zend_Validate_Exception('Expected object implementing Zend_Validate_Interface, got ' . get_class($validator)); } $validatorChain->addValidator($validator, $validatorRule[self::BREAK_CHAIN]); } $field = $validatorRule[self::FIELD]; if (!isset($this->_data[$field]) && $validatorRule[self::PRESENCE] == self::PRESENCE_REQUIRED) { $this->_missingFields[$field][] = "Field '{$field}' is required by rule {$ruleName}, but field is missing."; continue; } // @todo: support multi-valued data inputs if (!$validatorChain->isValid($this->_data[$field])) { $this->_invalidFields[$field] = array_merge($this->_invalidFields, $validatorChain->getMessages()); continue; } $this->_validFields[$field] = $this->_data[$field]; } /** * Unset fields in $_data that have been added to other arrays. * We have to wait until all rules have been processed because * a given field may be referenced by multiple rules. */ foreach (array_merge(array_keys($this->_validFields), array_keys($this->_invalidFields), array_keys($this->_missingFields)) as $key) { unset($this->_data[$key]); } /** * Anything left over in $_data is an unknown field. */ $this->_unknownFields = $this->_data; }
function tools_verify_positive_int($value) { $validatorChain = new Zend_Validate(); $validatorChain->addValidator(new Zend_Validate_Int()); if ($validatorChain->isValid($value)) { if ($value >= 0) { return true; } } return false; }
public function __construct($arrParam = array(), $options = null) { ////////////////////////////////// //Kiem tra Name ///////////// ////////////////////////////////// if ($arrParam['action'] == 'add') { $options = array('table' => 'da_news', 'field' => 'title_news'); } elseif ($arrParam['action'] == 'edit') { $options = array('table' => 'da_news', 'field' => 'title_news', 'exclude' => array('field' => 'news_id', 'value' => $arrParam['id'])); } $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_NotEmpty(), true)->addValidator(new Zend_Validate_StringLength(3, 100), true); if (!$validator->isValid($arrParam['name'])) { $message = $validator->getMessages(); $this->_messageError['name'] = 'Title: ' . current($message); $arrParam['name'] = ''; } ////////////////////////////////// //Kiem tra Picture small /////////// ////////////////////////////////// $upload = new Zend_File_Transfer_Adapter_Http(); $fileInfo = $upload->getFileInfo('picture'); $fileName = $fileInfo['picture']['name']; if (!empty($fileName)) { $upload->addValidator('Extension', true, array('jpg', 'gif', 'png'), 'picture'); $upload->addValidator('Size', true, array('min' => '2KB', 'max' => '1000KB'), 'picture'); if (!$upload->isValid('picture')) { $message = $upload->getMessages(); $this->_messageError['picture'] = 'Hình ảnh bài viết: ' . current($message); } } ////////////////////////////////// //Kiem tra category ///////////// ////////////////////////////////// if ($arrParam['cat_id'] == 0) { $this->_messageError['cat_id'] = 'Category : Please choose an category for item!'; } ////////////////////////////////// //Kiem tra Order ///////////// ////////////////////////////////// $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_StringLength(1, 10), true)->addValidator(new Zend_Validate_Digits(), true); if (!$validator->isValid($arrParam['order'])) { $message = $validator->getMessages(); $this->_messageError['order'] = 'Order: ' . current($message); $arrParam['order'] = ''; } ////////////////////////////////// //Kiem tra Status ///////////// ////////////////////////////////// if (empty($arrParam['status']) || !isset($arrParam['status'])) { $arrParam['status'] = 0; } ////////////////////////////////// //Kiem tra News hot ///////////// ////////////////////////////////// if (empty($arrParam['newshot']) || !isset($arrParam['newshot'])) { $arrParam['newshot'] = 0; } ////////////////////////////////// //Kiem tra Synopsis ///////////// ////////////////////////////////// $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_StringLength(20), true); if (!$validator->isValid($arrParam['synopsis'])) { $message = $validator->getMessages(); $this->_messageError['synopsis'] = 'Synopsis: ' . current($message); $arrParam['synopsis'] = ''; } ////////////////////////////////// //Kiem tra Content ///////////// ////////////////////////////////// $validator = new Zend_Validate(); $validator->addValidator(new Zend_Validate_StringLength(20), true); if (!$validator->isValid($arrParam['content'])) { $message = $validator->getMessages(); $this->_messageError['content'] = 'Content: ' . current($message); $arrParam['content'] = ''; } //======================================== // TRUYEN CAC GIA TRI DUNG VAO MANG $_arrData //======================================== $this->_arrData = $arrParam; }
/** * Change the Password for the selected user * * Password is a salted hash, salt is defined in app config * * @return array */ public function saveEditUserPwAction() { $userModel = new Admin_Model_DbTable_Users(); $userRow = new Admin_Model_DbRow_User($userModel->find($this->request->getParam('id'))); if ($this->request->getParam('password_input', 1) === $this->request->getParam('password_confirm', 2) && $userRow->get('id')) { // the if uses differnt default values for getParam() so that null or '' cannot be set, if fields are not present $validate = new Zend_Validate(); $validate->addValidator(new Zend_Validate_NotEmpty(), new Zend_Validate_StringLength(8)); if ($validate->isValid($this->request->getParam('password_input'))) { $userModel->updatePassword(md5($this->request->getParam('password_input') . Zend_Registry::get('password_salt')), $userRow->get('id')); return $this->responseSuccess(); } else { $error = $validate->getMessages(); } } else { $error = array('Passwords are not the same or unkown user'); } return $this->responseFailure('Failed Saving informations', $error); }
/** * Validate the userName * * @static * @param $userName * @return bool */ public static function isValid($userName) { $validatorUserName = new Zend_Validate(); $validatorUserName->addValidator(new Zend_Validate_StringLength(4, 16))->addValidator(new Zend_Validate_Alnum()); return $validatorUserName->isValid($userName); }
} else { // Check if username already exists // $sql = $dbRead->quoteInto('SELECT user_id FROM users WHERE username = ?', $_POST['username']); $result = $dbRead->fetchAll($sql); if ($result) { $errors['username'] = '******' . $_POST['username'] . ' already exists' . '</p>'; } } // Validate password // $length->setMin(8); $val = new Zend_Validate(); $val->addValidator($length); $val->addValidator(new Zend_Validate_Alnum()); if (!$val->isValid($_POST['password'])) { $errors['password'] = '******' . 'Password must be 8-15 characters' . '</p>'; } // Confirm passwords // $val = new Zend_Validate_Identical($_POST['password']); if (!$val->isValid($_POST['conf_password'])) { $errors['conf_password'] = '******' . 'Passwords don\'t match' . '</p>'; } // Validate email // $val = new Zend_Validate_EmailAddress(); if (!$val->isValid($_POST['email'])) { $errors['email'] = '<p class="add_user_error">' . 'Invalid email address' . '</p>'; } // If all data validated, then add new user
public function __construct($arrParam = array(), $options = null) { $validateNotEmpty = new Zend_Validate_NotEmpty(); $validateNotEmpty->setMessage('Không được để trống.'); ////////////////////////////////// //Kiem tra fullname ///////////// ////////////////////////////////// $validateStrLength = new Zend_Validate_StringLength(3, 100); $validateStrLength->setMessage('Giá trị nhập vào không hợp lệ, giá trị nhập vào là một chuỗi.', 'stringLengthInvalid'); $validateStrLength->setMessage("Chuỗi nhập vào phải lớn hơn %min% ký tự.", 'stringLengthTooShort'); $validateStrLength->setMessage("Chuỗi nhập vào phải nhỏ hơn %max% ký tự.", 'stringLengthTooLong'); $validator = new Zend_Validate(); $validator->addValidator($validateNotEmpty, true)->addValidator($validateStrLength, true); if (!$validator->isValid($arrParam['fullname'])) { $message = $validator->getMessages(); $this->_messageError['fullname'] = 'Họ và tên: ' . current($message); $arrParam['fullname'] = ''; } ////////////////////////////////// //Kiem tra email ///////////// ////////////////////////////////// $validateEmail = new Zend_Validate_EmailAddress(); $validateEmail->setMessage('Không hợp lệ, Giá trị nhập vào nên là chuỗi.', 'emailAddressInvalid'); $validateEmail->setMessage("'%value%' không đúng định dạng email.Email có dạng 'local-part@hostname'", 'emailAddressInvalidFormat'); $validateEmail->setMessage("'%value%' không đúng định dạng email.Email có dạng 'local-part@hostname'", 'emailAddressInvalidHostname'); $validator = new Zend_Validate(); $validator->addValidator($validateNotEmpty, true)->addValidator($validateEmail, true); if (!$validator->isValid($arrParam['email'])) { $message = $validator->getMessages(); $this->_messageError['email'] = 'Địa chỉ Email: ' . current($message); $arrParam['email'] = ''; } ////////////////////////////////// //Kiem tra title ///////////// ////////////////////////////////// $validator = new Zend_Validate(); $validator->addValidator($validateNotEmpty, true)->addValidator($validateStrLength, true); if (!$validator->isValid($arrParam['title'])) { $message = $validator->getMessages(); $this->_messageError['title'] = 'Tiêu đề ' . current($message); $arrParam['title'] = ''; } ////////////////////////////////// //Kiem tra Content ///////////// ////////////////////////////////// $validateStrLengthMsg = new Zend_Validate_StringLength(20); $validateStrLengthMsg->setMessage('Giá trị nhập vào không hợp lệ, giá trị nhập vào là một chuỗi.', 'stringLengthInvalid'); $validateStrLengthMsg->setMessage("Chuỗi nhập vào phải lớn hơn %min% ký tự.", 'stringLengthTooShort'); $validateStrLengthMsg->setMessage("Chuỗi nhập vào phải nhỏ hơn %max% ký tự.", 'stringLengthTooLong'); $validator = new Zend_Validate(); $validator->addValidator($validateNotEmpty, true)->addValidator($validateStrLengthMsg, true); if (!$validator->isValid($arrParam['message'])) { $message = $validator->getMessages(); $this->_messageError['message'] = 'Nội dung: ' . current($message); $arrParam['message'] = ''; } //======================================== // TRUYEN CAC GIA TRI DUNG VAO MANG $_arrData //======================================== $this->_arrData = $arrParam; }
function registerAction() { $errors = array(); $request = new RivetyCore_Request($this->getRequest()); if ($this->_auth->hasIdentity()) $this->_redirect('/default/user/profile/username/' . $this->_identity->username); $users_table = new Users(); $user = array(); $pre_register_params = array(); if ($request->has('url')) { $this->view->url_param = $request->url; $pre_register_params['return_url'] = $request->url; } else { $pre_register_params['return_url'] = false; } $pre_register_params = $this->_rivety_plugin->doFilter('default_pre_register', $pre_register_params); // FILTER HOOK foreach ($pre_register_params as $key=>$value) { if ($key == 'return_url') $this->view->url_param = $value; else $this->view->$key = $value; } if ($this->getRequest()->isPost()) { $request->addValidator('username', 'Username is required.'); $request->addValidator('email', 'Email address is required.'); $request->addValidator('password', 'Password is required.'); $request->addValidator('confirm', 'Password confirmation is required.'); if (!$request->isValid()) $errors = array_merge($errors, $request->getValidationErrors()); if (count($errors) == 0) { $user['username'] = $request->username; // if ($request->has('full_name')) // { // if (strlen($request->full_name) < 1) $user['full_name'] = $this->_T("Anonymous"); // else $user['full_name'] = $request->full_name; // } // else // { // $user['full_name'] = $this->_T("Anonymous"); // } $user['email'] = $request->email; $user['password'] = $request->password; $user['confirm'] = $request->confirm; // TODO: remove anything relating to birthday // if ($request->has('Birthday_Day') && $request->has('Birthday_Month') && $request->has('Birthday_Year')) // { // $user['birthday'] = strtotime($request->Birthday_Day ." ". $request->Birthday_Month ." ". $request->Birthday_Year); // } // else // { // $user['birthday'] = null; // } // validate username $username_validator = new Zend_Validate(); $username_validator->addValidator(new Zend_Validate_StringLength(1, RivetyCore_Registry::get('username_length'))); $username_validator->addValidator(new Zend_Validate_Alnum()); if (!$username_validator->isValid($user['username'])) { $show_username = "******".$user['username']."'"; if (trim($user['username']) == "") $show_username = "******".$this->_T("empty")."]"; $errors[] = $this->_T("%s is not a valid username. (Between %d and %d characters, only letters and numbers)",array($show_username,1,RivetyCore_Registry::get('username_length'))); $this->screenAlert('error', $this->_T("%s is not a valid username. (Between %d and %d characters, only letters and numbers)",array($show_username,1,RivetyCore_Registry::get('username_length')))); } $user_where = $users_table->getAdapter()->quoteInto('username = ?', $user['username']); if ($users_table->getCountByWhereClause($user_where) > 0) { $errors[] = $this->_T("The username '%s' is already in use",$user['username']); $this->screenAlert('error', $this->_T("The username '%s' is already in use",$user['username'])); } // validate email $email_validator = new Zend_Validate_EmailAddress(); if (!$email_validator->isValid($user['email'])) { $show_email = "'" . $user['email']."'"; if (trim($user['email']) == "") $show_email = "[" . $this->_T("empty") . "]"; $errors[] = $show_email . ' ' . $this->_T('is not a valid email.'); $this->screenAlert('error', $show_email . ' ' . $this->_T('is not a valid email.')); } // make sure no one is using this email already $email_where = $users_table->getAdapter()->quoteInto('email = ?',$user['email']); if ($users_table->getCountByWhereClause($email_where) > 0) { $errors[] = $this->_T("Email is already in use."); $this->screenAlert('error', 'This email address is already in use.'); } $password_validator = new Zend_Validate(); $password_validator->addValidator(new Zend_Validate_StringLength(6, 32)); // make sure password is at least six chars if (!$password_validator->isValid($user['password'])) { $errors[] = $this->_T("Password must be between %d and %d characters", array(6, RivetyCore_Registry::get('password_length'))); $this->screenAlert('error', $this->_T("Password must be between %d and %d characters", array(6, RivetyCore_Registry::get('password_length')))); } // if password is set, make sure it matches confirm if ($user['password'] != $user['confirm']) { $errors[] = $this->_T("Passwords don't match"); $this->screenAlert('error', $this->_T("Passwords don't match")); } // // do we meet the minimum age? // $minimum_age = RivetyCore_Registry::get('minimum_registration_age', '13') ; // $years_ago = strtotime($minimum_age . ' years ago'); // if ($user['birthday'] > $years_ago) // { // $errors[] = $this->_T("You must be at least %d years old to register.", $minimum_age); // } $params = array( 'request' => $this->getRequest(), 'user' => $user, 'errors' => $errors, ); $additional = $this->_rivety_plugin->doFilter($this->_mca, $params); // FILTER HOOK $errors = $additional['errors']; $user = $additional['user']; // convert birthday_ts to mysql date // $birthday_db = date(DB_DATETIME_FORMAT, $user['birthday']); if (count($errors) == 0) { $roles_table = new Roles(); $users_roles_table = new UsersRoles(); $default_role_shortname = RivetyCore_Registry::get('default_role_shortname'); $role_data = array("username" => $user['username'], "role_id" => $roles_table->getIdByShortname($default_role_shortname)); $users_roles_table->insert($role_data); $user_data = array( 'username' => $user['username'], 'email' => $user['email'], // 'full_name' => $user['full_name'], // 'birthday' => $birthday_db, 'password' => $user['password'], 'created_on' => date("Y-m-d H:i:s"), 'ip' => getenv('REMOTE_ADDR'), ); // if (array_key_exists('about_me', $additional['user'])) // { // $user_data['about_me'] = $additional['user']['about_me']; // } // MAKE IT OFFICIAL $users_table->insert($user_data); // DO SOME PLUGINS $params = array( 'user' => $user_data, 'request' => $request, 'username' => $user['username'], 'autologin' => true, 'autologin_username' => $user['username'], 'autologin_password' => $user['password'], 'autologin_password_hash' => md5($user['password']), 'locale_code' => $this->locale_code, ); $params = $this->_rivety_plugin->doFilter("default_post_register", $params); // FILTER HOOK $this->_rivety_plugin->doAction($this->_mca . "_post_register", $params); // ACTION HOOK (deprecated) // SET UP AUTO-LOGIN, OR DON'T if ($params['autologin']) { $appNamespace = new Zend_Session_Namespace('RivetyCore_Temp'); $appNamespace->autoLogin = $params['autologin']; $appNamespace->autoLoginUsername = $params['autologin_username']; $appNamespace->autoLoginPassword = $params['autologin_password']; $appNamespace->autoLoginPasswordHash = $params['autologin_password_hash']; } // SEND THE USER ON THEIR WAY $url = '/default/user/postregister'; // if there was a URL passed in then add that encoded URL as a param to the default redirect if ($request->has('url')) $url .= '/url/' . $request->url; $this->_redirect($url); } } } $this->view->user = $user; $this->view->pagetitle = $this->_T("Register"); foreach ($errors as $error) { $this->screenAlert('error', $error); } $errors = null; switch ($this->format) { case 'json': die(!empty($this->screen_alerts) ? json_encode(array('messages' => $this->screen_alerts)) : '200 OK'); default: break; } }
public static function loadByNameAndDistrictId($globalData, $object_name, $district_id) { if ($object_name == NULL || $object_name == '') { return NULL; } $validatorChain = new Zend_Validate(); $validatorChain->addValidator(new Zend_Validate_Int()); if (!$validatorChain->isValid($district_id)) { return NULL; } $db = $globalData->takeConnection(); $table = new RealEstateAgency_Database_Settlement_Table(array('db' => $db)); $where = array($db->quoteInto('obj_name = ?', $object_name), $db->quoteInto('district = ?', $district_id)); // RealEstateAgency_Util::printTestString('WHERE: ['.$where.']'); // test string; $rowset = $table->fetchAll($where); $row = $rowset->current(); if ($row) { $new_object = new RealEstateAgency_Object_Settlement(); $new_object->setGlobalData($globalData); $new_object->fillByZendRow($row); return $new_object; } else { return NULL; } }
/** * @param array $validatorRule * @return void */ protected function _validateRule(array $validatorRule) { /** * Get one or more data values from input, and check for missing fields. * Apply defaults if fields are missing. */ $data = array(); foreach ((array) $validatorRule[self::FIELDS] as $key => $field) { if (array_key_exists($field, $this->_data)) { $data[$field] = $this->_data[$field]; } else { if (isset($validatorRule[self::DEFAULT_VALUE])) { /** @todo according to this code default value can't be an array. It has to be reviewed */ if (!is_array($validatorRule[self::DEFAULT_VALUE])) { // Default value is a scalar $data[$field] = $validatorRule[self::DEFAULT_VALUE]; } else { // Default value is an array. Search for corresponding key if (isset($validatorRule[self::DEFAULT_VALUE][$key])) { $data[$field] = $validatorRule[self::DEFAULT_VALUE][$key]; } else { if ($validatorRule[self::PRESENCE] == self::PRESENCE_REQUIRED) { // Default value array is provided, but it doesn't have an entry for current field // and presence is required $this->_missingFields[$validatorRule[self::RULE]][] = $this->_getMissingMessage($validatorRule[self::RULE], $field); } } } } else { if ($validatorRule[self::PRESENCE] == self::PRESENCE_REQUIRED) { $this->_missingFields[$validatorRule[self::RULE]][] = $this->_getMissingMessage($validatorRule[self::RULE], $field); } } } } /** * If any required fields are missing, break the loop. */ if (isset($this->_missingFields[$validatorRule[self::RULE]]) && count($this->_missingFields[$validatorRule[self::RULE]]) > 0) { return; } /** * Evaluate the inputs against the validator chain. */ if (count((array) $validatorRule[self::FIELDS]) > 1) { if (!$validatorRule[self::ALLOW_EMPTY]) { $emptyFieldsFound = false; $errorsList = array(); $messages = array(); foreach ($data as $fieldKey => $field) { // if there is no Zend_Validate_NotEmpty instance in the rules, we will use the default if (!($notEmptyValidator = $this->_getNotEmptyValidatorInstance($validatorRule))) { $notEmptyValidator = $this->_getValidator('NotEmpty'); $notEmptyValidator->setMessage($this->_getNotEmptyMessage($validatorRule[self::RULE], $fieldKey)); } if (!$notEmptyValidator->isValid($field)) { foreach ($notEmptyValidator->getMessages() as $messageKey => $message) { if (!isset($messages[$messageKey])) { $messages[$messageKey] = $message; } else { $messages[] = $message; } } $errorsList[] = $notEmptyValidator->getErrors(); $emptyFieldsFound = true; } } if ($emptyFieldsFound) { $this->_invalidMessages[$validatorRule[self::RULE]] = $messages; $this->_invalidErrors[$validatorRule[self::RULE]] = array_unique(call_user_func_array('array_merge', $errorsList)); return; } } if (!$validatorRule[self::VALIDATOR_CHAIN]->isValid($data)) { $this->_invalidMessages[$validatorRule[self::RULE]] = $validatorRule[self::VALIDATOR_CHAIN]->getMessages(); $this->_invalidErrors[$validatorRule[self::RULE]] = $validatorRule[self::VALIDATOR_CHAIN]->getErrors(); return; } } else { if (count($data) > 0) { // $data is actually a one element array $fieldNames = array_keys($data); $fieldName = reset($fieldNames); $field = reset($data); $failed = false; if (!is_array($field)) { $field = array($field); } // if there is no Zend_Validate_NotEmpty instance in the rules, we will use the default if (!($notEmptyValidator = $this->_getNotEmptyValidatorInstance($validatorRule))) { $notEmptyValidator = $this->_getValidator('NotEmpty'); $notEmptyValidator->setMessage($this->_getNotEmptyMessage($validatorRule[self::RULE], $fieldName)); } if ($validatorRule[self::ALLOW_EMPTY]) { $validatorChain = $validatorRule[self::VALIDATOR_CHAIN]; } else { $validatorChain = new Zend_Validate(); $validatorChain->addValidator($notEmptyValidator, true); $validatorChain->addValidator($validatorRule[self::VALIDATOR_CHAIN]); } foreach ($field as $key => $value) { if ($validatorRule[self::ALLOW_EMPTY] && !$notEmptyValidator->isValid($value)) { // Field is empty AND it's allowed. Do nothing. continue; } if (!$validatorChain->isValid($value)) { if (isset($this->_invalidMessages[$validatorRule[self::RULE]])) { $collectedMessages = $this->_invalidMessages[$validatorRule[self::RULE]]; } else { $collectedMessages = array(); } foreach ($validatorChain->getMessages() as $messageKey => $message) { if (!isset($collectedMessages[$messageKey])) { $collectedMessages[$messageKey] = $message; } else { $collectedMessages[] = $message; } } $this->_invalidMessages[$validatorRule[self::RULE]] = $collectedMessages; if (isset($this->_invalidErrors[$validatorRule[self::RULE]])) { $this->_invalidErrors[$validatorRule[self::RULE]] = array_merge($this->_invalidErrors[$validatorRule[self::RULE]], $validatorChain->getErrors()); } else { $this->_invalidErrors[$validatorRule[self::RULE]] = $validatorChain->getErrors(); } unset($this->_validFields[$fieldName]); $failed = true; if ($validatorRule[self::BREAK_CHAIN]) { return; } } } if ($failed) { return; } } } /** * If we got this far, the inputs for this rule pass validation. */ foreach ((array) $validatorRule[self::FIELDS] as $field) { if (array_key_exists($field, $data)) { $this->_validFields[$field] = $data[$field]; } } }
/** * Checks if the provided value is a valid email address. * * An address is valid if it fulfills all validation rules of the element. * The state of the element itself is not changed by this method. * * @param string $value * @return boolean True if a valid address is provided, false otherwise. */ protected function isValidEmailAddress($value) { $rules = new Zend_Validate(); foreach ($this->getValidators() as $validator) { /* @var $validator Zend_Validate_Interface */ $rules->addValidator($validator, true); } return $rules->isValid($value); }