iPhone アプリでログイン ページを作成しており、Json を使用して PHP ページを呼び出し、MySql データベースに接続しています。
PHP ページに接続していますが、私のプログラムは何も投稿しません。
- (IBAction)login:(id)sender{
//Alloc dictionary
jsonDictionaryLogin = [[NSDictionary alloc] initWithObjectsAndKeys: securityCode, @"hash_app", loginTextField.text, @"app_email", passwordTextField.text, @"app_password", nil];
NSError *jsonError = nil;
jsonDataLogin = [NSJSONSerialization dataWithJSONObject:jsonDictionaryLogin
options:kNilOptions error:&jsonError];
if(!jsonError) {
NSString *serJSON = [[NSString alloc] initWithData:jsonDataLogin encoding:NSUTF8StringEncoding];
NSLog(@"\n\nSerialized JSON: %@", serJSON);
} else {
NSLog(@"JSON Encoding Failed: %@", [jsonError localizedDescription]);
}
NSURL *url = [NSURL URLWithString:@"http://www.mywebsite.com/mypage.php"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request addValue:[NSString stringWithFormat:@"%d", [jsonDataLogin length]] forHTTPHeaderField:@"content-Length"];
[request setHTTPBody:jsonDataLogin];
NSLog(@"jsonData: %@",jsonDataLogin);
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:true];
[connection start];
}
その後、私のデリゲートメソッドで:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)theData{
NSLog(@"String sent from server %@",[[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding]);
}
私のPHPコード:
<?
$hash = $_POST['hash_app'];
echo json_encode(array("TEST" => "swrao")); //RETURN swrao
echo json_encode($hash); //RETURN null
if($hash == "string_sended")
{
echo json_encode(array("TEST" => "YOU ARE IN")); //NO RETURN
}
?>
NSLog の文字列は、私が PHP ページに書き込んだメッセージを表示しますが、PHP ページは送信されたデータを受信しません。
アイデア?