注册jsp页面输入框点立即注册怎么能让输入框逐步验证报红

BMOB-登录注册手机验证码、邮箱验证 - 简书
BMOB-登录注册手机验证码、邮箱验证
在项目中很多时候需要登录注册功能,手机发送验证码,邮箱验证等功能,也有第三方登录的功能,第三方登录单独放在一章来说一下,这里先说一下其他的功能。我们选用的第三方工具是BMOB,其实也有MOB,友盟等可以实现,####。今天我们使用bmob给我们提供的SDK来完成这个功能。
要使用第三方有两种办法
下载官方的SDK导入工程,然后导入我们要使用的frameworks框架
使用cocoa pods进行导入,如果有同学不会使用cocoapods ,cocoa pods是个很好用的工具。
还有很重要一点,使用第三方的时候记得一定要在你的info里面添加App Transport Security Settings这样一个键值,同时把它设置成字典,然后把里面的key换成Allow Arbitrary Loads,然后把他的bool值设置成YES,不然你是无法请求获取到网络数据的。有很多时候发现自己没写错,但是就是无法发送邮箱验证等,就是因为这个缘故
首先我们看一下官方文档如何导入SDK,如果有同学知道如何导入就可以跳过这一步。
首先注册一个bmob的账号,然后创建一个应用,名字可以起为你的项目名。
然后点击,选择iOS,下载完成之后返回你的项目。把里面的BmobSDK.framework拖到你的工程里面的工具文件夹内。
接下来我们返回bmob看一下官方文档介绍是如何使用BMOB的SDK的。
我们选择然后我们按照步骤来进行操作。
里面的Application ID是一个很重要的东西,他可以和你的工程进行连接起来,要记好它。
接下来要导入要使用到的系统框架
第一步.jpg
然后我们来添加要使用的库,在官方文档里写的有我们需要引入哪些库
导入frameworks.png
Xcode更新之后dylib后缀的已经更新后缀为tbd的文件格式了,所以不要因为发愁找错文件,一定要导全才行,不然会有很多报红。
最后一步,在你应用的APPdelegate里面导入#import &BmobSDK/Bmob.h&同时把你应用的APPid拷贝进来
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
[self.window makeKeyAndVisible];
UINavigationController *nac = [[UINavigationController alloc]initWithRootViewController:[[RegisterViewController alloc]init]];
self.window.rootViewController =
[Bmob registerWithAppKey:@"你的APPid"];
return YES;
好,我们导入完成之后就可以开始使用第三方工具了,再次点击[官方文档](
)好吧,这个傲娇的链接后面有半个括号不让我用链接,体谅一下。然后找到用户管理。
里面有注册用户的方法,它使用的类名是BmobUser,可以点进去看一下,因为文档可能有的时候过时它使用了新的方法属性来代替了这个属性,我们这里直接拷贝
BmobUser *bUser = [[BmobUser alloc] init];
[bUser setUserName:@"小明"];
[bUser setPassword:@"123456"];
[bUser setObject:@18 forKey:@"age"];
[bUser signUpInBackgroundWithBlock:^ (BOOL isSuccessful, NSError *error){
if (isSuccessful){
NSLog(@"Sign up successfully");
NSLog(@"%@",error);
我们运行就可以直接创建了一个小明的用户,密码是123456。当然不能固定的创建,然后我们创建3个TextField,一个是账号,一个是密码,一个是邮箱,来获取注册人的3个信息,要设置邮箱的时候记得进入你的应用里面,打开邮箱验证,才能实现。
好,我们把上面那些代码给删掉,没用的东西,然后进入你的注册页面
BmobUser *bUser = [[BmobUser alloc] init];
bUser.username = self.UserNumber.
bUser.email = self.Email.
[bUser setPassword:self.passworld.text];
[bUser signUpInBackgroundWithBlock:^ (BOOL isSuccessful, NSError *error){
if (isSuccessful){
NSLog(@"注册成功");
NSLog(@"注册失败可能有重复用户,错误信息:%@",error);
通过这三个方法来设置用户的账号名,密码名,邮箱,我的三个TextField设置的都是属性,我们来做一个简单的判断,比如输入的值不能为空,然后如果注册成功,就写一个Alert提示框来提示一下用户注册成功,如果注册失败,就提示一下可能有重复用户等,如果想要账号的一些格式,都可以对对应的TextField的格式进行判断。注册成功,提示请到邮箱进行验证,然后返回登录。
然后是登录页面,登录页面其实只有一句方法,其他都是一些做的判断
[BmobUser loginWithUsernameInBackground:self.UserNumber.text password:self.passworld.text block:^(BmobUser user, NSError error) {
//登陆后返回的用户信息
NSLog(@"%@",user.email);
if (user!=nil) {
NSLog(@"登陆成功");
//跳转控制器
NSLog(@"没有该用户");
如果遗忘了密码,来进行找回密码操作,这里我们直接在设置一个找回密码的控制器。
在这里我们设置两个TextField,分别是用户名和邮箱名。来进行审核,如果审核通过,bmob会给他的邮箱发一封邮件,让它重置密码,如果审核不通过,就提示错误。
- (void)backPass
//获得到当前用户
BmobUser *bUser = [BmobUser getCurrentUser];
//确认账号名正确
bUser.username = self.UserNumber.
if (bUser) {
//进行操作
//bmob中重置密码的方法
[BmobUser requestPasswordResetInBackgroundWithEmail:self.email.text];
[BmobUser requestPasswordResetInBackgroundWithEmail:bUser.email];
UIAlertController *alertcontroller = [UIAlertController alertControllerWithTitle:@"提示" message:@"请进入邮箱验证" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *alert = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
[self presentViewController:alertcontroller animated:YES completion:^{
[alertcontroller addAction:alert];
//对象为空时,可打开用户注册界面
UIAlertController *alertcontroller = [UIAlertController alertControllerWithTitle:@"提示" message:@"账号或邮箱不正确" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *alert = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
[self presentViewController:alertcontroller animated:YES completion:^{
[alertcontroller addAction:alert];
然后可以看到bmob已经给你发送了一封邮件
忘记密码.png
点开就可以重设密码。
然后我们看一下BMOB是如何给手机发短信,进行验证码验证的。
好,让我们再次打开官方文档,点击短信服务。
首先,他告诉我们,如果你要使用短信服务的时候,请点击你的应用,然后在短信里面设置一个短信的格式
设置好模板,我们返回继续看文档
里面有一个可以直接给用户发短信的方法,验证码格式就是你在云端写的一个模板,要传的参数,就是你具体要发送给哪个手机用户的字符串。好,我们就先试试能不能发短信。
UITextField *field = [[UITextField alloc]initWithFrame:CGRectMake(100, 200, 200, 45)];
field.tag = 100;
field.placeholder = @"请输入手机号";
field.borderStyle = UITextBorderStyleRoundedR
field.clearButtonMode = YES;
[self.view addSubview:field];
UITextField *smsField = [[UITextField alloc]initWithFrame:CGRectMake(100, 350, 200, 45)];
smsField.placeholder = @"请输入验证码";
smsField.tag = 101;
smsField.borderStyle =UITextBorderStyleRoundedR
smsField.clearButtonMode = YES;
smsField.hidden = YES;
smsField.alpha = 0;
[self.view addSubview:smsField];
在这里我们最好把这个发送方法放在一个按钮的触发方法里,不然他没办法在输入完成之后获得这个电话号码
我送你们个按钮吧。。
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.backgroundColor = [UIColor colorWithRed:0.522 green:1.000 blue:0.846 alpha:1.000];
button.highlighted = YES;
[button setTitle:@"发送验证码" forState:UIControlStateNormal];
button.frame = CGRectMake(100, 280, 100, 45);
[self.view addSubview:button];
[button addTarget:self action:@selector(request:) forControlEvents:UIControlEventTouchUpInside];
好,我们把发送短信的方法放进去。
- (void)request:(UIButton *)sender
UITextField *field = [self.view viewWithTag:100];
UITextField *smsField = [self.view viewWithTag:101];
//请求验证码
[BmobSMS requestSMSCodeInBackgroundWithPhoneNumber:field.text andTemplate:@"你在BMOB里面设置的短信模板的名字" resultBlock:^(int number, NSError *error) {
if (error) {
NSLog(@"%@",error);
//获得smsID
UIButton *button = [self.view viewWithTag:103];
[UIView animateWithDuration:1 animations:^{
button.hidden = NO;
smsField.hidden = NO;
button.alpha = 1;
smsField.alpha = 1;
} completion:^(BOOL finished) {
输完手机号之后点击确认就可以给手机发送一条固定的短信,内容都是定义好的(不要发着玩,只有100条,后面要收费的)。
如果输入手机有误,就提示手机号不存在。
那接下来我们看手机验证码,bmob系统会在后台把你在输入框里填写的验证码和后台发送的验证码进行比较,来判断,所以设置一个验证码的输入框,在这里来进行比较。
UIButton *enable = [UIButton buttonWithType:UIButtonTypeCustom];
enable.backgroundColor = [UIColor colorWithRed:0.522
green:1.000 blue:0.846 alpha:1.000];
enable.highlighted = YES;
enable.hidden = YES;
enable.alpha = 0;
[enable setTitle:@"确认" forState:UIControlStateNormal];
enable.frame = CGRectMake(100, 430, 100, 45);
[self.view addSubview:enable];
[enable addTarget:self action:@selector(enable:) forControlEvents:UIControlEventTouchUpInside];
- (void)enable:(UIButton *)sender
UITextField *field = [self.view viewWithTag:100];
UITextField *smsField = [self.view viewWithTag:101];
[BmobSMS verifySMSCodeInBackgroundWithPhoneNumber:field.text andSMSCode:smsField.text resultBlock:^(BOOL isSuccessful, NSError *error) {
if (isSuccessful) {
NSLog(@"成功");
LoginViewController *nac = [[LoginViewController alloc]init];
[self.navigationController pushViewController:nac animated:YES];
NSLog(@"%@",error);
这样我们就能做个简单的验证码判断了,如果要使用到验证身份,比如我长时间没有登录淘宝了,或者我在异地登录的时候,可以设置给用户设置的绑定的手机号发送一个验证码来进行验证登录,判断身份,或者验证码申请注册账号里面都可以来做一些判断。
然后给大家附上demo,自己随便写的,不要嫌弃丑陋
一条有梦想的咸鱼17:28 提问
做一个用户注册页面,在必填项后面加一个红色星号怎么实行
我在做一个用户注册页面,我像在必填项例如用户名,密码后面加一个红色星号。这个怎么实现?
按赞数排序
直接写一个*,用css设置为红色
&span style="color:red"&*&/span&
那种是net自带校验控件RequiredFieldValidator,现在没人用校验控件了,对页面刷新有影响
还是直接添加一个*号好了。
registerAction-validation.xml注册时的验证
&?xml version="1.0" encoding="UTF-8"?&
02.&!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN"
&!-- 添加对注册账号的验证 --&
姓名不能为空
&![CDATA[([\s]{0,})]]&
姓名输入不合法,不能字符串为空或者都是空白字符
用户名不能为空
&![CDATA[(\w{6,16})]]&
用户名输入不合法,必须为长度在6~16之间的字符
密码不能为空
&![CDATA[(\w{6,16})]]&
密码输入不合法,必须在6到16直接长度的字符
其他相似问题

我要回帖

更多关于 点击输入框跳转页面 的文章

 

随机推荐