服务器之家

服务器之家 > 正文

iOS+PHP注册登录系统 iOS部分(下)

时间:2021-02-27 16:04     来源/作者:小曹小盆友

接着《ios+php注册登录系统 php部分(上)》进行学习

3.ios部分

上一次我们写完了数据库部分和php部分这次我们来完成ios部分。
首先先在storyboard中一阵狂拖,弄成如下图。
可以先在text field中输入用户名和密码 方便以后调试。

iOS+PHP注册登录系统 iOS部分(下)

3.1登录部分代码

创建一个新的uiviewcontroller 名为registviewcontroller(用于注册用户,viewcontroller用于登录)。
在viewcontroller.h中importregistviewcontroller
#import "registviewcontroller.h" 

然后设置登录界面中的控件 用来写用户名的控件名设置为txtuser,密码的控件名设置为txtpwd,确定按钮的方法名称为
loginclick,注册按钮的方法名为registbutton。
然后开始写viewcontroller.m中的代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//
// 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才可以进行跳转。

iOS+PHP注册登录系统 iOS部分(下)

 

复制代码 代码如下:
nsstring *urlstring = [nsstring stringwithformat:@"http://192.168.1.106/ioslogin/index.php?action=login&user_name=%@&user_pwd=%@",user_name,user_pwd]; 

 

 

其中这里的192.168.1.106可以写localhost也可以写自己的ip地址。
写到这里就可以先进行调试一下登录了。后面的注册用户代码也和这里差不多。

3.2注册界面代码
先在registviewcongroller.h中import viewcontroller.h
#import "viewcontroller.h" 
然后是registviewcontroller.m中的代码。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//
// 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

到这里所有的代码都已经写完了,我是一个新手,如果有不足或者代码错误之处还请指出。谢谢各位读者。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部