2015-01-17 1 views
0

PHP 웹 서비스에서 데이터를 가져 와서 로그인 세부 사항을 확인하려고합니다. 그러나, 목표 C 코드는 호출하는 PHP 웹 서비스는 ... 여기 내 목표 C와 PHP 코드Objective C를 사용하여 PHP POST 웹 서비스에 데이터를 제출하지 않았습니다.

- (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 

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

'데이터를 올바르게 제출하지 않는 것 같습니다. '- 어떻게 알았습니까? – SearchAndResQ

+1

OK ... 글쎄, 그게 정확히 문제인지는 모르겠지만, 객관적인 C 함수에서 처리 할 데이터가 없습니다. – HillInHarwich

+1

PHP 파일에서'$ username = $ _POST [ "password"];'가 잘못되었습니다 – SearchAndResQ

답변

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. $ 사용자 이름 = $ _POST [ "비밀번호"];

  2. header ('Content-type : application/json');

    실제 출력을 보내기 전에 header()를 호출해야하며,이 경우에는 필요하지 않습니다.

관련 문제