2012-03-03 10 views
0

私はphp Webサービスを使用していくつかの長いテキストをmysqlデータベースに保存する必要があるアプリケーションに取り組んでいます。私はWebサービスを作成しましたが、iphoneからphp Webサービスにパラメータを送信することはできません。 Webサービスのコードは次のとおりです。iphoneからphp Webサービスに長いテキストを保存する

<?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);

?>

私は、Webサービスにデータをポストするためのコードを発見したが、私は要求を投稿するデータを追加することはできませんよ。

状態= [NSStringのstringWithFormat:@ "ユーザ名=%パスワード& @ =%& @ interestedIn =%@ & aboutme =%@ & profilePic =%@ & isFBLogin =%@ & useFacebookPic =%@"、[@ "AAAAAAAAAA" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]、[@ "BBBBBB" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]、[ "女性" stringByAddingPercentEscapesUsingEncoding @:NSASCIIStringEncoding]、[ "に関するmeeeeeeeee" @ stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]、[@ "profile.png" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding] 、[@ "0" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]、[@ "0" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]; //ステータス= @ "username = pankaj1234 & aboutme = Hello Baby 1234567890 0987654321"; NSData * postData = [ステータスdataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; NSData * postData = [ステータス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!"); 

これらの値をリクエストにどのように追加しますか? 誰か助けてくれますか?

おかげ
パンカジ

+0

サーバー側でパラメータを受信できますか?サーバ側で$ usernameと$ aboutmeを印刷して、実際にデータがそのように来ているかどうかを確認してください。 – Ravin

+0

いいえ私はサーバーサイドでパラメータを受け取ることができません – pankaj

+0

@Giladが提案したものに従ってください。このデータを受け取るためには、通常のGETリクエストのように、サーバー側で名前と値のペアを送信する必要があります。しかし、あなたのiOSコードではこの情報を提供していないので、PHPのsciptで$ _POST ["username"]に質問するとデータはありません。これを素早くチェックするには、身体データを生成するために@ "username = pankaj&status = onli ne"を使用します。 – Ravin

答えて

1

あなたがWWWのフォームを掲示されますが、データを正しくエンコードしません。

フォームの構文は次のとおりです。key=value&key=valueキーと値の両方がURLでエンコードされています。

あなたのエンコードされた文字列(「ステータス」)は、次のようにエンコードする必要があります。

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

あなたは、その後のNSDataに変換し、あなたのWebサービスに投稿する残りのコードを使用することができます。

関連する問題