Question

I am working on a application where I need to save some long text to mysql database using php web service. I have created web services but I am not able to send parameter from iphone to php web service. Following is my code for web service:

<?php
require_once('config.php');
$username = $_POST["username"];
$aboutme = $_POST["aboutme"];

$conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die('Connection to database failed: ' . mysql_error());
mysql_select_db(DB_DATABASE) or die ('select_db failed!');
$query = "insert into Member(username, aboutMe) values(.'".$username."', '".$aboutme."')";
echo $query;
$result = mysql_query($query) or die(mysql_error());
echo $result;

mysql_close($con);

?>

I have found code to post data to web service but I am not able to add data to post request.

status=[NSString stringWithFormat:@"username=%@&password=%@&interestedIn=%@&aboutme=%@&profilePic=%@&isFBLogin=%@&useFacebookPic=%@",[@"aaaaaaaaaa" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[@"bbbbbb" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[@"female" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[@"about meeeeeeeee" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[@"profile.png" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[@"0" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[@"0" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]; //status = @"username=pankaj1234&aboutme=Hello Baby 1234567890 0987654321"; NSData *postData = [status dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; NSData *postData = [status dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.domain.com/registerUser.php"]];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

NSURLResponse *response;
NSError *error;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSLog(@"success!");

How will I add these values to the request? Can someone please help me?

Thanks
Pankaj

Was it helpful?

Solution

Your are posting a www form, but you don't encode the data properly.

A form has the following syntax: key=value&key=value where both key/value are url encoded.

Your encoded string ('status') should be encoded as the following:

status=[NSString stringWithFormat:@"username=%@&aboutme=%@",[username stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[about stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];

You can then use the rest of the code to convert it to NSData and post to your webservice.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top