Как использовать fmdb для страницы входа?
У меня есть страница входа, которая имеет 2 текстовых поля для имени пользователя и пароля и несколько кнопок. Я хочу знать, как я могу использовать fmdb для проверки, существует ли комбинация имени пользователя и пароля в моей базе данных? У меня также есть другой viewcontroller, используемый для страницы регистрации пользователя, имеющий 4 текстовых поля для имени пользователя, пароля, электронной почты, контактного номера и кнопку для ввода введенного текста в базу данных. Как сохранить введенный текст из 4 полей в базе данных? Заранее спасибо. Вот мой код: мне удалось ввести данные в базу данных, в registerViewController, но я хочу ввести код в действие «btnforgot» (забыл пароль), если пользователь забыл пароль и / или имя пользователя. Я также несколько преуспел в loginViewController, когда проверял, совпадают ли имя пользователя и пароль в базе данных или нет, но я предполагаю, что между ними что-то не хватает (некоторый код).
LOGINVIEW
#import "loginViewController.h"
#import "carTypeViewController.h"
#import "registerViewController.h"
#import "FMDatabase.h"
#import "AppDelegate.h"
#import "FMDatabaseAdditions.h"
@interface loginViewController ()
@end
@implementation loginViewController
@synthesize lblPass,lblUserName,txtPass,txtUser;
- (id) initWithNibName: (NSString *) пакет nibNameOrNil: (NSBundle *) nibBundleOrNil {self = [супер initWithNibName: nibNameOrNil bundle: nibBundleOrNil]; if (self) {// Пользовательская инициализация} return self; }
- (void)viewDidLoad
{
self.title = @"Enter Credentials";
username = [[NSMutableArray alloc]init];
password = [[NSMutableArray alloc]init];
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)btnLogin:(id)sender
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];
NSString *path = [docsPath stringByAppendingPathComponent:@"contacts.db"];
FMDatabase *database = [FMDatabase databaseWithPath:path];
[database open];
BOOL success = NO;
NSInteger count = [database intForQuery:@"select count(*) from RegMembers where USERNAME = ? and PASSWORD = ?", username, password];
if ([txtUser.text length] == 0 || [txtPass.text length]== 0){
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Error" message:@"Kindly enter details in all fields" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
}
else if (count > 0)
{
success = YES;
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Welcome" message:@"Login successful" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
carTypeViewController *car = [[carTypeViewController alloc]initWithNibName:@"carTypeViewController" bundle:nil];
[self.navigationController pushViewController:car animated:YES];
}
else
{
UIAlertView *alert1 = [[UIAlertView alloc]initWithTitle:@"Kindly enter the correct credentials" message:@"Entered username or password is incorrect" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert1 show];
txtUser.text=@"";
txtPass.text=@"";
}
[database close];
}
-(IBAction)removeKeyboard
{
[self.txtUser resignFirstResponder];
[self.txtPass resignFirstResponder];
}
- (IBAction)btnSignUp:(id)sender {
registerViewController *reg = [[registerViewController alloc]initWithNibName:@"registerViewController" bundle:nil];
[self.navigationController pushViewController:reg animated:YES];
}
- (IBAction)btnExit:(id)sender {
exit(1);
}
- (IBAction)btnForgotPass:(id)sender {
}
@end
REGISTERVIEW
- (void)viewDidLoad
{
self.title = @"Create Account";
[super viewDidLoad];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];
NSString *path = [docsPath stringByAppendingPathComponent:@"contacts.db"];
FMDatabase *database = [FMDatabase databaseWithPath:path];
[database open];
[database executeUpdate:@"create table if not exists RegMembers (ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT DEFAULT 0, USERNAME TEXT UNIQUE NOT NULL , PASSWORD TEXT NOT NULL , EMAIL TEXT NOT NULL , NUMBER TEXT NOT NULL)"];
[database close];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(IBAction)removeKeyboard
{
[self.txtUname resignFirstResponder];
[self.txtPass resignFirstResponder];
[self.txtEmail resignFirstResponder];
[self.txtNumber resignFirstResponder];
}
- (IBAction)btnUAcount:(id)sender
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];
NSString *path = [docsPath stringByAppendingPathComponent:@"contacts.db"];
FMDatabase *database = [FMDatabase databaseWithPath:path];
if ([txtUname.text length] == 0 ||
[txtPass.text length]== 0 ||
[txtEmail.text length]== 0 ||
[txtNumber.text length]== 0)
{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Error" message:@"Kindly enter details in all fields" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
}
else
{
if ([database open])
{
[database executeUpdate:@"insert into RegMembers(username, password, email, number) values(?,?,?,?)",
[NSString stringWithFormat: @"%@",txtUname.text],[NSString stringWithFormat:@"%@",txtPass.text],[NSString stringWithFormat:@"%@",txtEmail.text], [NSString stringWithFormat:@"%@",txtNumber.text],nil];
if (1)
{
NSLog(@"contact added");
self.txtUname.text = @"";
self.txtPass.text = @"";
self.txtEmail.text = @"";
self.txtNumber.text = @"";
}
else
{
NSLog(@"failed to add contact");
}
}
[database close];
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Registeration succesful" message:@"Thanks for choosing edmunds" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
[self.navigationController popViewControllerAnimated:YES];
}