Beispiel #1
0
    def post(self):
        next = self.request.headers.get("Referer")
        if not next:
            next = self.get_argument('next', default='/')

        code = self.get_argument('c', default='')
        if not code:
            self.redirect(self.reverse_url('error', 4030))
            return
            
        invitor_num = decode_url(code)
        invitor = yield members_db.find_one({'num':invitor_num})
        if not invitor:
            self.send_error(status_code=404)

        error_msgs = []
        
        remote_ip = self.request.remote_ip
        challenge = self.get_argument('recaptcha_challenge_field', default=None, strip=True)
        response  = self.get_argument('recaptcha_response_field', default=None, strip=True)
        cResponse = captcha.submit(challenge, response, self.settings.recaptcha_pvk, remote_ip)
        
        if not cResponse.is_valid:
            error_msgs.append('验证码错误,请再试试.')

        account = self.get_argument('account', default=None, strip=True)
        password = self.get_argument('password', default=None)
        email = self.get_argument('email', default=None, strip=True)
        
        import re
        p = re.compile(r"^[a-zA-Z][a-zA-Z0-9_]{5,20}$", re.IGNORECASE)
        if not (p.search(account)):
            error_msgs.append('帐号为5-20个英文字符')
            error_msgs.append('数字不能在最前')
        else:
            #check if this account exists.
            try:

                member = yield members_db.find_one({'account':account}, fields=['account'])

                if member:
                    error_msgs.append('这个帐号已经存在.如果您已经注册过但是忘记密码,您可以试试找回密码.')
            except Exception, e:
                error_msgs.append('服务出现错误,请稍后再试.')
Beispiel #2
0
 def get(self):
     next = self.request.headers.get("Referer")
     if not next:
         next = self.get_argument('next', default='/')
     
     next = self.get_argument('next', default='/')
     
     code = self.get_argument('c', default='')
     if not code:
         self.redirect(self.reverse_url('error', 4030))
         return
         
     member_num = decode_url(code)
     member = yield members_db.find_one({'num':member_num})
     if not member:
         self.send_error(status_code=404)
     
     captcha_html = captcha.displayhtml(self.settings.recaptcha_puk)
     
     self.render(self.template_path+'join.html', captcha_html=captcha_html, next=next)