一部のデータを PHP ファイルに投稿するメソッドがあります。
-(void)submitForm {
NSLog(@"name=%@", formName.text); // returns correct value
NSString *post = [NSString stringWithFormat:@"name=%@&", formName.text];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://path/to/file"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLResponse *response = NULL;
NSError *requestError = NULL;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&requestError];
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"%@",responseString);
}
注:実際には使用していません@"http://path/to/file"
。プライバシー保護のため、URLは省略しています。
期待どおりの応答を受け取っているので、PHP スクリプトに正しく接続していると思います。問題は、 をecho
出力する$name
と、空の文字列が返されることです。スクリプトは次のとおりです。
<?php
include("config.php"); // Handles DB connection
$name = mysql_escape_string($_POST["name"]);
mysql_query("insert into objects(name) values('$name')") or die(mysql_error());
echo $name; // returns empty string
私が期待するのは、Obj-C コードのある種の構文/論理エラーですが、それを見つけることはできません。