Не отправлять данные в веб-сервис PHP POST с помощью Objective C

0

Я пытаюсь вернуть данные из веб-службы php, чтобы проверить данные входа в систему. Тем не менее, код Objective C, похоже, не правильно передает данные... ниже, мой код Objective C и PHP

- (IBAction)doLogInPressed:(UIButton *)sender {
NSString *noteDataString = [NSString stringWithFormat:@"username=%@&password=%@", self.logInUsername.text, self.logInPassword.text];

NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: [NSOperationQueue mainQueue]];


NSURL * url = [NSURL URLWithString:@"http://www.simonsayssolutions.co.uk/giftlistapi/checkLogin.php"];
NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setHTTPBody:[noteDataString dataUsingEncoding:NSUTF8StringEncoding]];

NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest:urlRequest completionHandler:^(NSData *dataRaw, NSURLResponse *header, NSError *error) {
    NSDictionary *json = [NSJSONSerialization
                          JSONObjectWithData:dataRaw
                          options:kNilOptions error:&error];
    NSString *status = [json objectForKey:@"id"];

    if(status.integerValue > 1){
        self.logInUserCentreConstraint.constant = self.view.frame.size.height;
        self.user = [[glUser alloc] init];
        self.user.dbId = [json objectForKey:@"id"];
        self.user.username = [json objectForKey:@"username"];
        self.user.password = [json objectForKey:@"password"];
        self.user.forename = [json objectForKey:@"firstname"];
        self.user.surname = [json objectForKey:@"surname"];
        self.user.email = [json objectForKey:@"email"];
        [self performSegueWithIdentifier:@"Show Main Menu" sender:self];
    } else {
    }

}];
[dataTask resume];
}

и вот веб-сервис php, который он называет...

<?php

if (isset ($_POST["username"])){
    $username = $_POST["username"];
    $username = $_POST["password"]; 
    $link = mysql_connect('www.simonsayssolutions.co.uk:3306','simonsay_root', 'PASSWORD') or die ('Cannot connect to DB');
    mysql_select_db('simonsay_giftlist', $link) or die ('Cannot select db');
    $query = "SELECT * FROM user where (username = '$username' AND password = '$password');";
    $result = mysql_query($query, $link) or die ("Could not execute query");
    $myArray = array();
    header('Content-type:application/json');
    while($user = mysql_fetch_array($result))
    {
        $myArray[] = $user;
    }
    echo json_encode($myArray); 

} else {
    echo "no data!";
}

?>
  • 0
    does not seem to be submitting the data correctly <- Откуда вы знаете?
  • 1
    Хорошо ... ну, может быть, я не знаю, в чем именно проблема - но я не получаю никаких данных для обработки в целевой функции c.
Показать ещё 2 комментария
Теги:

1 ответ

1
Лучший ответ
<?php

if (isset ($_POST["username"])){
$username = $_POST["username"];
$password = $_POST["password"]; 
$link = mysql_connect('www.simonsayssolutions.co.uk:3306','simonsay_root', 'bradicus1') or die ('Cannot connect to DB');
mysql_select_db('simonsay_giftlist', $link) or die ('Cannot select db');
$query = "SELECT * FROM user where (username = '$username' AND password = '$password');";
$result = mysql_query($query, $link) or die ("Could not execute query");
$myArray = array();

while($user = mysql_fetch_array($result))
{
    $myArray[] = $user;
}
echo json_encode($myArray); 

} else {
echo "no data!";
}

?>

Об ошибках:

  1. $ username = $ _POST ["password"];

  2. заголовка ( 'Content-Type: применение /JSON');

    Помните, что header() необходимо вызвать до отправки любого фактического вывода, в любом случае в этом случае не требуется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню