2011-01-29 95 views
4

我创建通过以下POST方法客观-CPOST方法

-(IBAction) postLocation: (id) sender{ 
NSString *latitude = @"37.3229978"; 
NSString *longitude = @"-122.0321823"; 

NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.mydomain.me/webservice.php"]]; 
[request setHTTPMethod:@"POST"]; 

NSString *post =[[NSString alloc] initWithFormat:@"latitude=%@longitude=%@submit",latitude,longitude]; 
[request setHTTPBody:[post dataUsingEncoding:NSUTF8StringEncoding]]; 

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

和我的PHP代码:

if (isset($_POST['submit']){ 

    //it doesn't get into this if statement 
    $latitude = $_POST['latitude']; 
    $longitude = $_POST['longitude']; 

} 

的问题是,为什么不能PHP代码进入if语句?我在哪里可以通过Objective-C来陈述'提交'?

+0

你有没有找到答案?我有这个确切的问题:http://stackoverflow.com/questions/13110180/php-get-value-erased-when-placed-in-ifisset – Celeste 2012-10-29 10:08:43

回答

3

您的查询字符串POST不包含submit密钥。你应该将其更改为以下

NSString *post =[[NSString alloc] initWithFormat:@"latitude=%@&longitude=%@&submit=",latitude,longitude]; 
+0

显然它仍然没有任何东西....我怎么能检查我的PHP代码,它实际上触发了if语句中的代码? – aherlambang 2011-01-29 05:01:59

0

也许,这是简单的使用if($_SERVER['REQUEST_METHOD'] == 'POST'),而不是你现在把检查形式后的代码。

2

参数之间没有“&”。

2
-(IBAction) postLocation: (id) sender{ 

    NSString *latitude = @"37.3229978"; 
    NSString *longitude = @"-122.0321823"; 

    NSString *post = [NSString stringWithFormat:@"&latitude=%@&longitude=%@", latitude, longitude]; 

    NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; 
    NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]]; 
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 

    NSString *address_url = @"http://www.mydomain.me/webservice.php?"; 

    address_url = [address stringByAppendingString:post]; 

    [request setURL:[NSURL URLWithString:[NSString stringWithFormat:address]]]; 
    [request setHTTPMethod:@"POST"]; 
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"]; 
}