0

私は phpmyadmin データベースを実行しており、3 つの列を持つテーブルを作成しました。ユーザー名、パスワード、年齢。Xcodeでは、ユーザー名とパスワードを使用してログインするログインアプリを作成しました

    NSString *strURL = [NSString stringWithformat:@"http://localhost/database/login.php?username=%@&password=%@", usernamefield.text, passwordtextfield.text];

NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];

NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];

if ([strResult isEqualToString:@"1"])

このコードは正常に動作します! ログインを押したときに、データベースの 3 番目の列 (AGE) をテキスト ラベルで表示することは可能ですか? ログインしたユーザーの年齢は、アプリの上部バーにあるテキスト ラベルに表示されますか?

4

1 に答える 1

0

セキュリティを改善するためにできることはたくさんあります (パスワードを GET 要求のパラメーターとして送信しないと、保護されていないログに記録される可能性があります)、信頼性 (必要なのはスクリプトだけではないかもしれません)ローカルホストで実行する) またはそのコードの応答性 (同期呼び出しを行わない)。

ただし、最小限の出発点としてそのコードから始めて、age 値で応答し、この値をテキストフィールド/ウィンドウタイトル/必要なものにディスパッチするように php スクリプトを構成できます。しかし、ユーザーが正しく接続されているかどうかを確認する方法は? localhost で実行されているスクリプトは、文字列による不適切な認証で応答する可能性があります。

例えば:

NSString *strURL = [NSString stringWithformat:@"http://localhost/database/login.php?username=%@&password=%@", usernamefield.text, passwordtextfield.text];

NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];

NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];

if ([strResult isEqualToString:@"auth_error"]){
    // do something
} else {
    [window setTitle:strResult]
}

しかし、それは本当に始まりです。その後、JSONを使用してリクエストに応答し、それをNSJSONSerializationで読み取って、スクリプトの信頼性を高め、RESTful にすることに興味があるかもしれません。

于 2012-05-19T22:41:54.257 に答える