Comments (135)

  1. The log clearly shows the data send the json reply received.

    The PHP code given shows that it looks for username ‘andrei’, but the username send is ‘username’.

  2. Andrei Popescu

    2014-09-04 11:37:26.177 LoginScreenTutorial[3826:60b] PostData: username=username&password=password
    2014-09-04 11:37:26.571 LoginScreenTutorial[3826:60b] Response code: 200
    2014-09-04 11:37:26.571 LoginScreenTutorial[3826:60b] Response ==> {“success”:0,”error_message”:”Username and/or password is invalid. No post data!”}
    2014-09-04 11:37:26.572 LoginScreenTutorial[3826:60b] Success: 0

    and on PHP

    header(‘Content-type: application/json’);
    if($_POST[‘username’] == ‘andrei’ && $_POST[‘password’] == ‘password’)
    echo ‘{“success”:1}’;
    echo ‘{“success”:0,”error_message”:”Username and/or password is invalid.”}’;
    echo ‘{“success”:0,”error_message”:”Username and/or password is invalid. No post data!”}’;

  3. Andrei Popescu

    For me is not working. It is not posting data. I’ve download the entire project from the link and is not posting data. Can you please help me?

  4. If you are going to return something like this:


    Then you can use the following code:

    NSNumber * success = (NSNumber *)[response objectForKey: @"success"];
    if([success boolValue] == YES)
        // true
    } else {
        // false
  5. Simon

    Great script. However I am going to be connecting to API that returns True false to the JSON request. I am trying to change code to reflect this. Any suggestions?

    Any help would be amazing

  6. hye, i need you die and suggestion,

    i have tried this tutorial to adapt my apps which to allow user to check their member card application status, sadly i can’t use it effectively.

    i need an apps example that user will insert their application number thru mobile, and they will get the status of their application.

    database mySQL. – storing users application status.

  7. HI Dipin, amazing guide!
    I’ve downloaded the code but when I try to simulate to any kind of device I got the error
    xcode cannot run using the selected device
    chose a destination with a supported architecture in order to run on this device.

    My developer profile is expired but I don’t think it is a problem for running the app on simulator.
    I’ve try looking at
    Build Settings > Build Options > Compiler for C/C++/Objective-C (LLVM)
    Bundle Name = ${PRODUCT_NAME}
    Executable file = ${EXECUTABLE_NAME}
    but still doesn’t work.
    Any idea?
    thank you

  8. Ibrahim Chiha

    Both of them result in a connection failed. I really need this to work, please help me!

  9. Hm, lets try.
    Can you check the response for a successful and an unsuccessful login, see if the page redirects for any one of them.
    If the page ‘redirects’ to another page after successful authentication, then in the app we can check to see if the page is redirecting when trying to authenticate.

  10. Ibrahim Chiha

    I read all of your comments, and some had the same issue. Can you please tell me how to grab authentication code from a website and how to use them to check if I had correctly logged in? I know I’m asking for too much, but it would really help me if you replied!

  11. Ibrahim Chiha

    Hi Dipin,
    Love the tutorial very helpful but there’s one thing I need and it’s not working for me 🙁
    I am developing an app for my school, where it uses a website with a login username and password. I was trying to make a login and username ViewController and take the user’s input and plug it in the HTML, and then opens a UIWebView and logs in with those credentials. Can you please help me? I need to submit this app to my school as soon as possible.

  12. Si

    Thanks, it appears I was not connected. I just needed to let it connect, give it a few minutes and then start.

  13. Si

    This tutorial works fine for the simulator, I can send data to and form the php page fine. But when I run it on my iPhone, it is unresponsive and then says “Login Failed! Connection Failed”.

    In Xcode it says in the debugger the response code is 0 and “the request timed out.”. Why would the simulator be fine and the phone not? Please help!

  14. Eric McCarthy

    This is a very helpful tutorial. Do you plan on making one for xcode 6/ swift?

  15. Marlow Fernandez

    Everything works great. The code was amazing and I thank you for that. I have only one question. How would a person use a “signup” button to save the information to the file? Or would it have to be to a “database” of some sort?

  16. Louis

    Alright will try tomorrow but thank you very much you have helped me greatly

  17. Copy over the authentication code from your actual login page, and see my sample php code to get an idea on what to return.

  18. 🙂
    The app is expecting a JSON response.
    If possible, create a new url to process the requests from the app, and return a JSON response.

  19. Louis

    I’m not sure as I have only just stated to learn code and I am not experienced however I copied the code about json data and put in the URL and it sent me back to the same page so I assume so

  20. Louis

    Yeah the app use to crash on signing then I defined the signin correctly and now it comes up saying sign in failed but doesn’t crash the app and the URL is

  21. Louis

    I am trying to log on to my schools vle, I am entering my login and password which is correct however it won’t let me log in it comes up sign in failed

  22. John

    Hi dipin, great tutorial two queries we are having our app developed
    Firstly could our developers use your code for our one time login for users in our app.
    Secondly if thousands of users were login too our app where would we access all there data from, will our developers need to link our app to our website and what security can be put in place to secure users details


  23. James

    Ahh got it now i corrected the mistake and now it works good however when i enter the correct username and password it comes up sign in failed (i am trying to log onto my schools vle)

  24. Hi,

    Can you make sure ‘signinClicked’ is defined, if so, please paste here the code which is calling ‘signinClicked’.

    If you had copied the code from tutorial, i think i have made a typo “sigininClicked”.


  25. You can use NSUserDefaults.


    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    // saving an NSString
    [prefs setObject:@"TEXT" forKey:@"keyToLookup"];
    // saving an NSInteger
    [prefs setInteger:99 forKey:@"integerKey"];
    // saving a Double
    [prefs setDouble:1.234 forKey:@"doubleKey"];
    // saving a Float
    [prefs setFloat:1.2345678 forKey:@"floatKey"];
    [prefs synchronize];


    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    // getting an NSString
    NSString *myString = [prefs stringForKey:@"keyToLookup"];
    // getting an NSInteger
    NSInteger myInt = [prefs integerForKey:@"integerKey"];
    // getting an Float
    float myFloat = [prefs floatForKey:@"floatKey"];
  26. Nick

    This is an awesome tutorial! Is there a way to save username/password information so the user only has to login on first launch? Thanks!

  27. James

    hello, i have changed the website url to the one i want however when i enter the correct login username and password it crashes and says thread 1 signal SIGABRT then when i go to the debug area is says this:

    2014-06-23 21:09:57.804 Bilton App[7370:60b] Cannot find executable for CFBundle 0x10943c030 (not loaded)
    2014-06-23 21:10:07.033 Bilton App[7370:60b] -[KJViewController signinClicked:]: unrecognized selector sent to instance 0x109320400
    2014-06-23 21:10:07.035 Bilton App[7370:60b] *** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[KJViewController signinClicked:]: unrecognized selector sent to instance 0x109320400’
    *** First throw call stack:
    0 CoreFoundation 0x000000010194a495 __exceptionPreprocess + 165
    1 libobjc.A.dylib 0x00000001016a999e objc_exception_throw + 43
    2 CoreFoundation 0x00000001019db65d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
    3 CoreFoundation 0x000000010193bd8d ___forwarding___ + 973
    4 CoreFoundation 0x000000010193b938 _CF_forwarding_prep_0 + 120
    5 UIKit 0x0000000100257f06 -[UIApplication sendAction:to:from:forEvent:] + 80
    6 UIKit 0x0000000100257eb4 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 17
    7 UIKit 0x0000000100334880 -[UIControl _sendActionsForEvents:withEvent:] + 203
    8 UIKit 0x0000000100333dc0 -[UIControl touchesEnded:withEvent:] + 530
    9 UIKit 0x000000010028ed05 -[UIWindow _sendTouchesForEvent:] + 701
    10 UIKit 0x000000010028f6e4 -[UIWindow sendEvent:] + 925
    11 UIKit 0x000000010026729a -[UIApplication sendEvent:] + 211
    12 UIKit 0x0000000100254aed _UIApplicationHandleEventQueue + 9579
    13 CoreFoundation 0x00000001018d9d21 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    14 CoreFoundation 0x00000001018d95f2 __CFRunLoopDoSources0 + 242
    15 CoreFoundation 0x00000001018f546f __CFRunLoopRun + 767
    16 CoreFoundation 0x00000001018f4d83 CFRunLoopRunSpecific + 467
    17 GraphicsServices 0x0000000103ac1f04 GSEventRunModal + 161
    18 UIKit 0x0000000100256e33 UIApplicationMain + 1010
    19 Bilton App 0x00000001000023e3 main + 115
    20 libdyld.dylib 0x0000000101fe25fd start + 1
    libc++abi.dylib: terminating with uncaught exception of type NSException

Leave a comment

Your email address will not be published.


This site uses Akismet to reduce spam. Learn how your comment data is processed.