/**
  * @see	\wcf\system\upload\IUploadFileValidationStrategy::validate()
  */
 public function validate(UploadFile $uploadFile)
 {
     if ($uploadFile->getErrorCode() != 0) {
         $uploadFile->setValidationErrorType('uploadFailed');
         return false;
     }
     if ($uploadFile->getFilesize() > $this->maxFilesize) {
         $uploadFile->setValidationErrorType('tooLarge');
         return false;
     }
     if (!preg_match($this->fileExtensionRegex, mb_strtolower($uploadFile->getFilename()))) {
         $uploadFile->setValidationErrorType('invalidExtension');
         return false;
     }
     return true;
 }
 //if password matches the retype, encrypt the user's password
 if ($password == $password_again) {
     //password encryption
     $crypt_password = password_encrypt($password);
 } else {
     $error_flag++;
 }
 $temp = explode(".", $_FILES["avatar"]["name"]);
 $extension = end($temp);
 $destination .= "{$username}\\";
 // try to create a new upload object
 try {
     $upload = new UploadFile($destination, "image");
     $upload->setMaxSize($imageMaxSize);
     $upload->upload(false);
     $filename = $upload->getFilename();
     $msgResult = $upload->getmessages();
 } catch (Exception $e) {
     $msgResult[] = $e->getMessage();
 }
 //upload user and avatar to db
 if ($error_flag == 0) {
     $query = "CALL add_user('" . $username . "', '" . $crypt_password . "' ,'" . $filename . "' , '" . $extension . "' , '" . $email . "' , '" . date('Y-m-d') . "' )";
     if ($result = $db->query($query)) {
         $_SESSION['user'] = $username;
         echo "<script> location.href=\"account.php\" </script>";
         if (isset($msgResult)) {
             foreach ($msgResult as $msg) {
                 echo $msg . "*";
             }
         }