2012-03-03 4 views
0

나는 php 웹 서비스를 사용하여 mysql 데이터베이스에 긴 텍스트를 저장해야하는 어플리케이션을 만들고 있습니다. 웹 서비스를 만들었지 만 아이폰에서 PHP 웹 서비스로 매개 변수를 보낼 수 없습니다. 다음은 웹 서비스 코드입니다.아이폰에서 php 웹 서비스에 긴 텍스트 저장하기

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

?> 내가 웹 서비스에 데이터를 게시하는 코드를 발견하지만 난 요청을 게시 할 데이터를 추가 할 수 없습니다입니다

.

상태 = [있는 NSString stringWithFormat : @ [ "이름 = % & 암호 @ = % & interestedIn = % @ & aboutme = % @ & profilePic = % @ & isFBLogin = % @ & useFacebookPic = % @"@ "aaaaaaaaaa"stringByAddingPercentEscapesUsingEncoding : NSASCIIStringEncoding], [ "bbbbbb"stringByAddingPercentEscapesUsingEncoding @ NSASCIIStringEncoding], [ "암"stringByAddingPercentEscapesUsingEncoding @ NSASCIIStringEncoding] [@ stringByAddingPercentEscapesUsingEncoding "meeeeeeeee 약"] NSASCIIStringEncoding [@ "profile.png"stringByAddingPercentEscapesUsingEncoding : NSASCIIStringEncoding] , [@ "0"stringByAddingPercentEscapesUsingEncoding : NSASCIIStringEncoding], [@ "0"stringByAddingPercentEscapesUsingEncoding : NSASCIIStringEncoding]]; // status = @ "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로 변환하여 웹 서비스에 게시 나머지 코드를 사용할 수 있습니다.