Xcode - 在文本字段中显示数据库表值

时间:2012-05-19 17:19:40

标签: mysql objective-c database xcode

我正在运行一个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"])

此代码工作正常! 那么在按下登录时是否可以在文本标签中显示数据库中的第三列(AGE)?所以登录用户的年龄将显示在应用程序顶部栏的文本标签中?

1 个答案:

答案 0 :(得分:0)

你可以做很多事情来提高安全性(不要将密码作为GET请求的参数发送,它可能会(某些日志)在某个不受保护的地方结束),可靠性(你的脚本可能不是唯一的)需要在localhost上运行的东西)或该代码的响应性(不进行同步调用)。

但是,从该代码作为简约起点开始,您可以配置您的php脚本以使用年龄值进行响应,并将此值分配给textfield / window title /您想要的任何内容。 但那么如何检查用户是否正确连接?在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。