コード例 #1
0
 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);
     }
 }
コード例 #2
0
 /**
  * Validate captcha
  *
  * @return boolean
  */
 protected function _validateCaptcha()
 {
     $captcha = array('id' => $this->captcha->getId(), 'input' => $this->userCaptcha);
     if (!$this->captcha->isValid($captcha)) {
         $this->errors['captcha'] = $this->captcha->getMessages();
         return false;
     }
     return true;
 }
コード例 #3
0
 /**
  * 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');
     }
 }
コード例 #4
0
ファイル: Image.php プロジェクト: bokultis/kardiomedika
 /**
  * Validate the word
  *
  * @see    Zend_Validate_Interface::isValid()
  * @param  mixed      $value
  * @param  array|null $context
  * @return boolean
  */
 public function isValid($value, $context = null)
 {
     $captchaValue = Zend_Controller_Front::getInstance()->getRequest()->getParam('captcha', array());
     return parent::isValid($captchaValue, $context);
 }
コード例 #5
0
 /**
  * @author      : VinhNT
  * @name        : ajaxsendmailAction
  * @copyright   : FPT Online
  * @todo        : ajaxsendmail Action
  * @return      : array('error' => 0, 'message' => '', 'body' => '')
  */
 public function ajaxsendmailAction()
 {
     //Disable layout
     $this->_helper->layout->disableLayout(true);
     //Set no render view
     $this->_helper->viewRenderer->setNoRender(true);
     //default return
     $response = array('error' => 0, 'message' => '');
     /* -----------------------------------------------------------------
         Get param sent to job send mail
        */
     try {
         $arrParams = $this->_request->getPost();
         //Trim captcha id
         $arrCaptcha['id'] = trim($arrParams['captchaID']);
         $arrCaptcha['input'] = trim($arrParams['txtCode']);
         // Creating a Zend_Captcha_Image instance
         $captcha = new Zend_Captcha_Image();
         // would be key/value array: id => captcha ID, input => captcha value
         if ($captcha->isValid($arrCaptcha)) {
             // Include config send mail
             include APPLICATION_PATH . '/configs/mail.php';
             //Check config sender
             if (is_array($configsender) && !empty($configsender)) {
                 // Get Url to send
                 $url_send = $arrParams['url'];
                 $url_send = addslashes(str_replace(array('=', '(', ')'), '', trim(strip_tags($url_send))));
                 $url_send = str_replace('http://thethao.vnexpress.net', 'http://seagames.vnexpress.net', $url_send);
                 // Get name of the sender
                 $sender_name = $arrParams['sender_name'];
                 $sender_name = addslashes(str_replace(array('=', '(', ')'), '', trim(strip_tags($sender_name))));
                 if (empty($sender_name)) {
                     $response['error'] = 1;
                     $response['message'] = 'Xin hãy nhập họ tên người gửi.';
                     echo Zend_Json::encode($response);
                     exit;
                 }
                 // Get user email
                 $email_user = $arrParams['email_user'];
                 $email_user = addslashes(str_replace(array('=', '(', ')'), '', trim(strip_tags($email_user))));
                 //Check email user
                 if (empty($email_user)) {
                     $response['error'] = 1;
                     $response['message'] = 'Xin hãy nhập email người gửi.';
                     echo Zend_Json::encode($response);
                     exit;
                 }
                 // Get title of send mail
                 $title_email = urldecode($arrParams['title_email']);
                 $title_email = addslashes(str_replace(array('=', '(', ')'), '', trim(strip_tags($title_email))));
                 //Set parrams email sender
                 $sender_email = $configsender['message']['email'];
                 // Get email of the reciever
                 $reciever_mail = $arrParams['receiver_mail'];
                 $reciever_mail = addslashes(str_replace(array('=', '(', ')'), '', trim(strip_tags($reciever_mail))));
                 //Check reciever mail
                 if (empty($reciever_mail)) {
                     $response['error'] = 1;
                     $response['message'] = 'Xin hãy nhập email người nhận.';
                     echo Zend_Json::encode($response);
                     exit;
                 }
                 // Get message mail
                 $message_mail = $arrParams['message_mail'];
                 $message_mail = trim(strip_tags($message_mail));
                 //Get body message
                 $body_message = '<strong>' . $sender_name . '(' . $email_user . ')</strong><br/>Đã gửi cho bạn bài báo tại link: <a href="' . $url_send . '" title="' . $title_email . '">' . $url_send . '</a>';
                 //Check message mail
                 if (!empty($message_mail)) {
                     $body_message .= '<br/>Với nội dung: </br>' . $message_mail;
                 }
                 $body_message .= '<hr><br/>Email này được gửi bằng tiện ích "Gửi cho bạn bè" của <b>SEAGames.VnExpress.net<b>';
                 //Get array mail
                 $arrEmail = explode(';', $reciever_mail);
                 $arrEmailReciever = array();
                 //Check array email
                 if (!empty($arrEmail)) {
                     foreach ($arrEmail as $email) {
                         $email = trim($email);
                         //If email is NOT valid
                         if (@(!eregi("^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)+\$", (string) $email))) {
                             //if (@!Fpt_Valid::isEmail($email))
                             continue;
                         }
                         //Put data to arrReciever
                         $arrEmailReciever[] = array('email' => $email, 'alias' => $email);
                     }
                     if (!empty($arrEmailReciever)) {
                         //push job call send mail
                         $jobParams = array('class' => 'Job_Thethao_JobMessage', 'function' => 'sendMail', 'args' => array('sender' => $sender_email, 'name' => 'VNE SEA Games', 'reciever' => $arrEmailReciever, 'subject' => $title_email, 'body' => $body_message));
                         //get application config
                         $config = Thethao_Global::getApplicationIni();
                         //To array
                         $jobConfiguration = $config['job']['task']['sport']['send_mail'];
                         //get job send mail instance
                         $jobClient = Thethao_Global::getJobClientInstance('sport');
                         //Register job
                         $result = $jobClient->doBackgroundTask($jobConfiguration, $jobParams);
                         if (!$result) {
                             $response['error'] = 1;
                             $response['message'] = 'Không gửi được email. Xin vui lòng thử lại sau.';
                             echo Zend_Json::encode($response);
                             exit;
                         } else {
                             $response['error'] = 0;
                             $response['message'] = 'Gửi email thành công.';
                             echo Zend_Json::encode($response);
                             exit;
                         }
                     } else {
                         $response['error'] = 1;
                         $response['message'] = 'Email gửi đến không hợp lệ';
                         echo Zend_Json::encode($response);
                         exit;
                     }
                 }
             } else {
                 $response['error'] = 1;
                 $response['message'] = 'Empty recipient.';
                 echo Zend_Json::encode($response);
                 exit;
             }
         } else {
             $response['error'] = 2;
             $response['message'] = 'Mã xác nhận không đúng.';
             echo Zend_Json::encode($response);
             exit;
         }
     } catch (Exception $ex) {
         // Log error
         Thethao_Global::sendLog($ex);
     }
     echo Zend_Json::encode($response);
     exit;
 }