def POST(self):
        user = self.valid()
        if user:
            i = web.input()
            qq = i.qq
            identity = i.identity
            phone = i.phone
            address = i.address
            family_info = i.family_info

            qq_error = ''
            identity_error = ''
            phone_error = ''
            address_error = ''
            family_info_error = ''

            # check if empty then valided as True
            def valid_input(input,valid_func):
                if input =='':
                    return True
                else:
                    return valid_func(input)

            valided_qq = valid_input(qq,valid_qq)
            valided_identity = valid_input(identity,valid_identity)
            valided_phone = valid_input(phone,valid_tel)
            valided_address = valid_input(address,valid_address)
            valided_family_info = valid_input(family_info,valid_family_info)

            if not valided_qq:
                qq_error = u'您输入的QQ号有错误!'

            if not valided_identity:
                identity_error = u'您输入的身份证号有错误!'

            if not valided_phone:
                phone_error = u'您输入的手机号有错误!'

            if not valided_address:
                address_error = u'您输入的地址有错误!'

            if not valided_family_info:
                family_info_error = u'您输入的家庭信息有错误!'

            if qq_error == '' and identity_error == '' and phone_error == '' and address_error == '' and family_info_error == '':
                user_profile = web.ctx.orm.query(UserProfile).filter_by(userid=user.userid).first()
                if not user_profile:
                    user_profile = UserProfile(
                        userid = user.userid,
                        identity = identity,
                        qq = qq,
                        phone = phone,
                        address = address,
                        family_info = family_info
                    );
                    web.ctx.orm.add(user_profile)
                else:
                    user_profile.identity = identity,
                    user_profile.qq = qq,
                    user_profile.phone = phone,
                    user_profile.address = address,
                    user_profile.family_info = family_info

                self.redirect('/profile')

            else:
                print qq_error
                print identity_error
                print phone_error
                print address_error
                print family_info_error
                return self.write_html(user,qq,identity,phone,address,family_info,
                        qq_error,identity_error,phone_error,address_error,family_info_error)
        else:
            self.redirect('/login')