sqlite3을 사용하여 로그인 자격 증명을 저장하는 iphone 응용 프로그램의 로그인 화면을 만들려고합니다. 다음Xcode 로그인 화면 sqlite3 데이터베이스 인증 문제
는내가 인증 처리하기 위해 사용하고있는 기능입니다 :
-(void) enter
{
const char *dbpath = [databasePath UTF8String];
sqlite3_stmt *statement;
if (sqlite3_open(dbpath, &DBLogin) == SQLITE_OK)
{
NSLog(@"Connected to Database");
NSString *querySQL = [NSString stringWithFormat:@"SELECT id FROM User WHERE id=\"%@\"",login.text];
NSString *s = password.text;
const char *query_stmt = [querySQL UTF8String];
NSLog(@"String is %s",query_stmt);
NSLog(@"Pass is %@",s);
if (sqlite3_prepare_v2(DBLogin,query_stmt, -1, &statement, NULL) ==!SQLITE_NULL)
{
NSLog(@"Executed Correctly");
querySQL = [NSString stringWithFormat:@"SELECT password FROM User WHERE password=\"%@\"",password.text];
query_stmt = [querySQL UTF8String];
const char *f= [login.text UTF8String];
NSLog(@"String is %s",query_stmt);
NSLog(@"Pass is %@",s);
// const char *l = [login.text UTF8String];
// sqlite3_bind_text(statement, 1, query_stmt, -1, SQLITE_STATIC);
if (sqlite3_prepare_v2(DBLogin,query_stmt, -1, &statement, NULL) == !SQLITE_NULL)
{
if(sqlite3_bind_text(statement, 1,f , -1, SQLITE_STATIC))
status.text= @"Congratulations";
}
else
{
NSLog(@"error");
}
}
else
{
NSLog(@"Failed");
status.text [email protected]"ERROR!";
}
}
}
을 그리고 이것은 데이터베이스 내 스키마입니다 :
CREATE TABLE User (id varchar(20) PRIMARY KEY, password varchar(20));
내가 뭔가 잘못이 있다고 생각 나는 login.text
또는 password.text
의 세부 사항을 전달하고있다. NSLog
에 따르면 올바른 값을 전달하지만 올바른 입력인지 여부를 확인하지 못하는 것 같습니다. 모든 것이 좋다고 생각하는 것 같습니다. status.text = Congratulations
내가 무엇을 입력해도 상관 없습니다.
이 문제를 해결하는 방법에 대해 알지 못해서 도움을 얻을 수있어서 감사하겠습니다. 필요한 경우 더 많은 정보를 제공 할 수 있습니다. 미리 감사드립니다!
을 필요 달성하는 방법은? –
데이터베이스의 데이터로 사용자를 인증 할 수 있어야합니다. 암호가 사용자에게 맞는지 확인하는 방법을 잘 모르겠습니다. 그래서 도움을 주시면 감사하겠습니다. – user1431272
사용자 데이터는 앱을 설치할 때 데이터베이스에 어떻게 저장됩니까? 앱과 함께 제공되며 사용자 이름/비밀번호가 알려 지거나 처음 앱을 실행할 때 사용자 이름/비밀번호를 입력합니까? 그들이 다른 장치를 사용하면 어떻게됩니까? 사용자 이름과 암호를 사용하기를 원하십니까? 당신이 결정해야 할 많은 다른 질문이 있습니다 –