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"])

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

4

1 回答 1

0

您可以做很多事情来提高安全性(不将密码作为 GET 请求的参数发送,它可能(将)最终出现在某个未受保护的日志上)、可靠性(您的脚本可能不是唯一需要的东西在本地主机上运行)或该代码的响应能力(不进行同步调用)。

但是,以该代码作为一个简约的起点,您可以配置您的 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 回答