2013-03-22 80 views
-3

我是Xcode和Objective-C的新手。我需要爲我的iOS應用程序創建一個登錄功能。當任何人在各自的字段中輸入用戶名和密碼並點擊登錄時,應用程序應該與包含用戶名和密碼的sqlite數據庫通信。如果用戶名,密碼對與數據庫中的條目匹配,用戶應該能夠進入下一頁,否則應該顯示正確的錯誤信息。ios應用用戶認證

+3

你到底需要什麼幫助? SQLite的?警報視圖?字符串比較?故事板賽季?請說明你的問題。 「實現功能」目前是您的問題的答案。 – Mattias 2013-03-22 11:32:02

+0

這是一個不錯的功課。 :) – holex 2013-03-22 12:03:43

+0

實施這種方法將導致你無處可去。可能你會在這裏提供答案;但是,那不會讓你成爲PROGRAMMER。我建議你嘗試一些基本的教程作爲一些網站,並學習事情已經完成。如果到那時你會發現一些具體的問題;不要猶豫,在這裏發佈。我希望你明白我的觀點。 – viral 2013-03-22 12:08:54

回答

0
  1. 創建一個返回boolean結果的方法。
  2. 創建一個查詢,用於檢查用戶在數據庫中輸入的用戶名密碼&。
  3. 如果用戶名和密碼匹配,則方法返回true否則返回false
  4. 如果true,在登錄後將用戶移動到您的下一個屏幕,否則顯示alert表示無效的憑據。

    -(BOOL)validateUser 
    { 
        [self openDatabase]; 
    
        BOOL isValid = FALSE; 
    
        sqlite3_stmt *compiledStatement; 
    
    
        const char *sql ="select UserId from MstUser where Username = ? and Password = ?"; 
    
        if(sqlite3_prepare_v2(mainDatabase, sql , -1, &compiledStatement, NULL)==SQLITE_OK) 
        { 
         sqlite3_bind_text(compiledStatement, 1, [txtUsername UTF8String], -1, SQLITE_TRANSIENT); 
         sqlite3_bind_text(compiledStatement, 2, [txtPasswrod UTF8String], -1, SQLITE_TRANSIENT); 
         while (sqlite3_step(compiledStatement) == SQLITE_ROW) 
         { 
          isValid = True; 
          int userId = sqlite3_column_int(compiledStatement, 0); 
         } 
        } 
        else 
        { 
         NSLog(@"Error : -------'%s'", sqlite3_errmsg(mainDatabase)); 
        } 
    
        sqlite3_finalize(compiledStatement); 
        sqlite3_close(mainDatabase); 
        compiledStatement = nil; 
    
        return isValid; 
    } 
    
    if ([self validateUser]) 
    { 
        //Login user 
    } 
    else 
    { 
        //alert to show invalid user 
    } 
    
+0

給一個人一條魚,你喂他一天。教一個人釣魚,你一輩子喂他。 – viral 2013-03-22 12:05:59

+0

P.S.這教導了不好的安全做法(即將裸露的密碼存儲在數據庫中......) – borrrden 2013-03-22 13:31:21

+0

@borrrden這只是一個簡單的例子。 – Girish 2013-03-22 13:33:02