Каков наилучший способ создать логин на базе iOS для базы данных MySQL? - PullRequest
0 голосов
/ 27 марта 2012

У меня есть веб-сайт, на который я могу войти, сделанный на PHP. Сейчас я пытаюсь сделать такую ​​же страницу входа на iPad.

У меня есть два текстовых поля и кнопка входа в систему, и она настраивается следующим образом, когда я нажимаю на кнопку входа в систему:

-(IBAction)login:(id)sender {
    NSString *username = usernameTextfield.text; 
    NSString *password = passwordTextfield.text;

    NSString *anURL;

    anURL = @"http://www.mydomain.com/login.php";

    NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:[NSURL URLWithString:anURL]];
    [request setHTTPMethod:@"POST"];

    NSString *post =[[NSString alloc] initWithFormat:@"username=%@&password=%@", username, password];
    [request setHTTPBody:[post dataUsingEncoding:NSASCIIStringEncoding]];

    NSURLResponse *response;
    NSError *err;
    NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];

    NSString *dataStr = [NSString stringWithFormat:@"%@", responseData];

    [statusLabel setText:dataStr]; // This is just to see what data I get back…
}

А это мой PHP файл "login.php":

<?php

include("config.php"); //<- db connection

session_start();

$message = "";

$username = stripslashes(mysql_real_escape_string($_POST['username'])); 
$password = stripslashes(mysql_real_escape_string($_POST['password']));

$submit = $_POST["submit_login"];

$md5_password = md5($password);

    $sql = "SELECT * FROM usr_table WHERE usr_name = '$username' and md5_password = '$md5_password'";
    $result = mysql_query($sql);

    $count = mysql_num_rows($result);

    if($count == 1) {
        $user_fetch = mysql_fetch_array($result);
        $_SESSION['usr_id'] = $user_fetch['usr_id'];
        $_SESSION['usr_name'] = $user_fetch['usr_name'];

        $message = "Login OK";

    } else {
        $message = "Login NOT OK";
    }

echo $message;

?> 

Кажется, я просто вернул данные в формате HEX? Как я могу перевести это и относиться к этому хорошо? Я вошел в систему в этот момент или это лучший способ сделать это?

Спасибо заранее, Виктор Гидлеф

1 Ответ

0 голосов
/ 27 марта 2012

После получения ответа от вашего сервера вы должны преобразовать его из NSData в NSString:

NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
NSString *responseStr = [NSString stringWithUTF8String:[responseData bytes]];
NSLog(@"%@", responseStr);

Вместо этого вы могли бы также сделать асинхронный запрос, чтобы не блокировать основной поток в вашемприложение во время ожидания ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...