iOS+PHP注册登录系统 iOS部分(下)
接着《ios+php注册登录系统 php部分(上)》进行学习
3.ios部分
上一次我们写完了数据库部分和php部分这次我们来完成ios部分。
首先先在storyboard中一阵狂拖,弄成如下图。
可以先在text field中输入用户名和密码 方便以后调试。
3.1登录部分代码
创建一个新的uiviewcontroller 名为registviewcontroller(用于注册用户,viewcontroller用于登录)。
在viewcontroller.h中importregistviewcontroller
#import "registviewcontroller.h"
然后设置登录界面中的控件 用来写用户名的控件名设置为txtuser,密码的控件名设置为txtpwd,确定按钮的方法名称为
loginclick,注册按钮的方法名为registbutton。
然后开始写viewcontroller.m中的代码
// // viewcontroller.m // ioslogin // // created by 曹晗 on 16/2/25. // copyright :emoji: 2016年 caohan. all rights reserved. // #import "viewcontroller.h" @interface viewcontroller () @property (weak, nonatomic) iboutlet uitextfield *txtuser; @property (weak, nonatomic) iboutlet uitextfield *txtpwd; @end @implementation viewcontroller - (void)viewdidload { [super viewdidload]; // do any additional setup after loading the view, typically from a nib. } - (void)didreceivememorywarning { [super didreceivememorywarning]; // dispose of any resources that can be recreated. } - (ibaction)loginclick:(id)sender { //前后去空格 nsstring *username = [_txtuser.text stringbytrimmingcharactersinset:[nscharacterset whitespacecharacterset]]; nsstring *userpwd = [_txtpwd.text stringbytrimmingcharactersinset:[nscharacterset whitespacecharacterset]]; nsdictionary *jsondic = [self getjsondata:username userpwd:userpwd]; nsstring* loginflag = [jsondic objectforkey:@"loginflag"]; nslog(@"%@",loginflag); [self aletrinfo:loginflag]; } - (ibaction)registbutton:(id)sender { uistoryboard *storboard = self.storyboard; registviewcontroller *vc2 = [storboard instantiateviewcontrollerwithidentifier:@"vc2"]; [self presentviewcontroller:vc2 animated:yes completion:nil]; } //用于请求php 获得json - (nsdictionary *)getjsondata:(nsstring *)user_name userpwd:(nsstring *)user_pwd { nserror *error; nsstring *urlstring = [nsstring stringwithformat:@"http://192.168.1.106/ioslogin/index.php?action=login&user_name=%@&user_pwd=%@",user_name,user_pwd]; //加载一个nsurl对象 nsurlrequest *request = [nsurlrequest requestwithurl:[nsurl urlwithstring:urlstring]]; //将请求的url数据放到nsdata对象中 nsdata *response = [nsurlconnection sendsynchronousrequest:request returningresponse:nil error:nil]; //ios5自带解析类nsjsonserialization从response中解析出数据放到字典中 nsdictionary *jsondic = [nsjsonserialization jsonobjectwithdata:response options:nsjsonreadingmutableleaves error:&error]; nslog(@"接收到的数据为%@",jsondic); return jsondic; } //弹出信息 - (void)aletrinfo:(nsstring *)loginflag{ uialertview *alert = [[uialertview alloc]init]; [alert settitle:@"提示"]; [alert setdelegate:nil]; [alert addbuttonwithtitle:@"确定"]; if ([loginflag isequal: @"0"]) { [alert setmessage:@"账号或密码错误"]; } if ([loginflag isequal:@"1"]) { [alert setmessage:@"登陆成功"]; } [alert show]; } @end
在注册按钮能够跳转界面前,要先将stroyboard中的注册界面的stroyboard id设置为vc2才可以进行跳转。
其中这里的192.168.1.106可以写localhost也可以写自己的ip地址。
写到这里就可以先进行调试一下登录了。后面的注册用户代码也和这里差不多。
3.2注册界面代码
先在registviewcongroller.h中import viewcontroller.h
#import "viewcontroller.h"
然后是registviewcontroller.m中的代码。
// // registviewcontroller.m // ioslogin // // created by 曹晗 on 16/2/27. // copyright 2016年 caohan. all rights reserved. // #import "registviewcontroller.h" @interface registviewcontroller () @property (weak, nonatomic) iboutlet uitextfield *txtuser; @property (weak, nonatomic) iboutlet uitextfield *txtpwd; @end @implementation registviewcontroller - (void)viewdidload { [super viewdidload]; // do any additional setup after loading the view. } - (void)didreceivememorywarning { [super didreceivememorywarning]; // dispose of any resources that can be recreated. } //这个是注册按钮 - (ibaction)registbutton:(id)sender { nsstring *username = [_txtuser.text stringbytrimmingcharactersinset:[nscharacterset whitespacecharacterset]]; nsstring *userpwd = [_txtpwd.text stringbytrimmingcharactersinset:[nscharacterset whitespacecharacterset]]; nsdictionary *jsondic = [self getjsondata:username userpwd:userpwd]; nsstring* registflag = [jsondic objectforkey:@"registflag"]; nslog(@"%@",registflag); [self aletrinfo:registflag]; } //这个是返回按钮 - (ibaction)returnbutton:(id)sender { [self dismissmodalviewcontrolleranimated:yes]; } - (nsdictionary *)getjsondata:(nsstring *)user_name userpwd:(nsstring *)user_pwd { nserror *error; nsstring *urlstring = [nsstring stringwithformat:@"http://192.168.1.106/ioslogin/index.php?action=regist&user_name=%@&user_pwd=%@",user_name,user_pwd]; //加载一个nsurl对象 nsurlrequest *request = [nsurlrequest requestwithurl:[nsurl urlwithstring:urlstring]]; //将请求的url数据放到nsdata对象中 nsdata *response = [nsurlconnection sendsynchronousrequest:request returningresponse:nil error:nil]; //ios5自带解析类nsjsonserialization从response中解析出数据放到字典中 nsdictionary *jsondic = [nsjsonserialization jsonobjectwithdata:response options:nsjsonreadingmutableleaves error:&error]; nslog(@"接收到的数据为%@",jsondic); return jsondic; } - (void)aletrinfo:(nsstring *)registflag{ uialertview *alert = [[uialertview alloc]init]; [alert settitle:@"提示"]; [alert setdelegate:nil]; [alert addbuttonwithtitle:@"确定"]; if ([registflag isequal: @"0"]) { [alert setmessage:@"用户名已存在"]; } if ([registflag isequal:@"1"]) { [alert setmessage:@"注册成功"]; } [alert show]; } @end
到这里所有的代码都已经写完了,我是一个新手,如果有不足或者代码错误之处还请指出。谢谢各位读者。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: spring 自动装配和aop的使用
下一篇: JSP 动态树的实现