【原文地址:http://blog.csdn.net/toss156/article/details/7638529】
今天给大家带来一个简单的登陆验证,用的是ASIHttpRequest 这个开源类库,使用的方法很简单,从网上下载下来以后,添加到项目中,并添加一下这些框架。
下面上代码
-
-
-
-
-
-
-
-
-
#import <UIKit/UIKit.h>
-
#import "ASIHttpHeaders.h"
-
#import "CJSONDeserializer.h"
-
#import "tooles.h"
-
@interface ViewController : UIViewController<ASIHTTPRequestDelegate>
-
{
-
UITextField *username;
-
UITextField *password;
-
-
}
-
@property (nonatomic,retain) UITextField *username;
-
@property (nonatomic,retain) UITextField *password;
-
-
@end
-
-
-
-
-
-
-
-
-
#import "ViewController.h"
-
#define HOSTURL @"http://192.168.1.105/NetDemo/index.php";
-
-
-
@interface ViewController ()
-
-(void) login:(id)sender;
-
-(void) GetErr:(ASIHTTPRequest *)request;
-
-(void) GetResult:(ASIHTTPRequest *)request;
-
@end
-
-
@implementation ViewController
-
@synthesize username,password;
-
- (void)viewDidLoad
-
{
-
[super viewDidLoad];
-
-
UILabel *txt1 = [[UILabel alloc] initWithFrame:CGRectMake(30,100,70,30)];
-
[txt1 setText:@"用户名"];
-
[txt1 setBackgroundColor:[UIColor clearColor]];
-
[self.view addSubview:txt1];
-
-
UILabel *txt2 = [[UILabel alloc] initWithFrame:CGRectMake(30,140,70,30)];
-
[txt2 setText:@"密 码"];
-
[txt2 setBackgroundColor:[UIColor clearColor]];
-
[self.view addSubview:txt2];
-
-
username = [[UITextField alloc]initWithFrame:CGRectMake(120,100, 150, 30)];
-
[username setBorderStyle:UITextBorderStyleRoundedRect];
-
[self.view addSubview:username];
-
-
password = [[UITextField alloc]initWithFrame:CGRectMake(120,140, 150, 30)];
-
[password setBorderStyle:UITextBorderStyleRoundedRect];
-
[password setSecureTextEntry:YES];
-
[self.view addSubview:password];
-
-
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
-
[btn setTitle:@"提交" forState:UIControlStateNormal];
-
[btn addTarget:self action:@selector(login:) forControlEvents:UIControlEventTouchUpInside];
-
[btn setFrame:CGRectMake(90, 180, 150, 40)];
-
[self.view addSubview:btn];
-
-
-
-
}
-
-
-(void) login:(id)sender
-
{
-
-
if (username.text == nil||password.text==nil ) {
-
[tooles MsgBox:@"用户名或密码不能为空!"];
-
return;
-
}
-
-
[username resignFirstResponder];
-
[password resignFirstResponder];
-
-
[tooles showHUD:@"正在登陆...."];
-
NSString *urlstr = HOSTURL;
-
NSURL *myurl = [NSURL URLWithString:urlstr];
-
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:myurl];
-
-
[request setPostValue:username.text forKey:@"username"];
-
[request setPostValue:username.text forKey:@"password"];
-
[request setDelegate:self];
-
[request setDidFinishSelector:@selector(GetResult:)];
-
[request setDidFailSelector:@selector(GetErr:)];
-
[request startAsynchronous];
-
-
-
}
-
-
-
- (void)GetResult:(ASIHTTPRequest *)request{
-
-
[tooles removeHUD];
-
NSData *data =[request responseData];
-
NSDictionary *dictionary = [[CJSONDeserializer deserializer] deserializeAsDictionary:data error:nil];
-
<p class="p1"><span class="s1"> </span><span class="s2">
-
if ([dictionary objectForKey:@"yes"]) {
-
[tooles MsgBox:[dictionary objectForKey:@"yes"]];
-
return;
-
}else if ([dictionary objectForKey:@"error"] != [NSNull null]) {
-
[tooles MsgBox:[dictionary objectForKey:@"error"]];
-
return;
-
}
-
-
}
-
-
-
- (void) GetErr:(ASIHTTPRequest *)request{
-
-
[tooles removeHUD];
-
-
[tooles MsgBox:@"网络错误,连接不到服务器"];
-
}
-
-
- (void)viewDidUnload
-
{
-
[super viewDidUnload];
-
-
}
-
-
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
-
{
-
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
-
}
-
-
-(void) dealloc
-
{
-
[username release];
-
[password release];
-
[super dealloc];
-
}
-
-
@end
php端验证的代码,随便写了下,后面就是返回一个JSON格式的字符串。
-
<?php
-
if($_POST['username'] == "admin" && $_POST['password'] == "admin")
-
{
-
echo '{"yes":"登陆成功"}';
-
}else
-
{
-
echo '{"error":"用户名或密码错误"}';
-
};
-
?>