2012-02-18 3 views
-3

PHP 문의 양식을 사용하여 신청서의 이메일을 보내려고했지만 어떤 이유로 응용 프로그램에서 세부 정보를 보낼 수 없습니다. 문제가 무엇인지 말해주세요. 내가 마지막에 사용하고있는 PHP 양식을 첨부했습니다.PHP 양식으로 데이터를 전송하는 중 오류가 발생했습니다.

웹 브라우저를 사용하여 전자 메일을 보내고 쓰기 : http://www.bergerz.co.il/wp-content/themes/ecobiz/sendemailfromapp.php/?name=MYNAME&subject=SUBJECT&[email protected]&message=MESSAGE 일 때 완벽하게 작동합니다. 그는 여전히 작동하지 않는, http://www.pastebin.com/BvaiMs04

내 최신 코드로 메시지를 편집 한 : 여기

-(IBAction)send:(id)sender 
{ 
    NSMutableURLRequest * request = [[NSMutableURLRequest alloc] init]; 

    NSString * urlString = [NSString stringWithFormat:@"http://www.bergerz.co.il/wp-content/themes/ecobiz/sendemailfromapp.php"]; 

    [request setURL:[NSURL URLWithString:urlString]]; 
    [request setHTTPMethod:@"REQUEST"]; 

    NSString * paramDataString = [NSString stringWithFormat:@"name=%@&subject=%@&email=%@&message=%@",[txtName.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],[txtSubject.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],[txtEmail.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],[txtMessage.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

    NSData*paramData = [paramDataString dataUsingEncoding:NSUTF8StringEncoding]; 
    [request setHTTPBody:paramData]; 

    NSURLResponse * response; 
    NSError * error; 

    NSData * aData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];//excute of data to the internet 
    NSString * requestData = [[NSString alloc] initWithData:aData encoding:NSUTF8StringEncoding]; 
    if ([requestData isEqualToString:[NSString stringWithFormat:@"sent"]]) 
    { 
     lblStatus.hidden = NO; 
     lblStatus.text = @"Message Sent.."; 
    } 
    else if ([requestData isEqualToString:[NSString stringWithFormat:@"NO_NAME_ERROR"]]) 
    { 
     lblStatus.hidden = NO; 
     lblStatus.text = @"Name is too short"; 
    } 
    else if ([requestData isEqualToString:[NSString stringWithFormat:@"NO_EMAIL_ERROR"]]) 
    { 
     lblStatus.hidden = NO; 
     lblStatus.text = @"Email is too short"; 
    } 
    else if ([requestData isEqualToString:[NSString stringWithFormat:@"EMAIL_WRONG_ERROR"]]) 
    { 
     lblStatus.hidden = NO; 
     lblStatus.text = @"Email wrong error"; 
    } 
    else if ([requestData isEqualToString:[NSString stringWithFormat:@"NO_MESSAGE_ERROR"]]) 
    { 
     lblStatus.hidden = NO; 
     lblStatus.text = @"Message is too short"; 
    } 
    else if ([requestData isEqualToString:@"NULL"]) 
    { 
     lblStatus.hidden = NO; 
     lblStatus.text = @"EMPTY"; 
    } 
    NSLog(@"request: %@",request); 
    NSLog(@"requestData: %@",requestData); 
    NSLog(@"aData: %@",aData); 
} 

는 PHP 파일입니다.

+0

오류를 찾으셨습니까? 어디에서 멈 춥니 까? – Emil

+0

유일한 오류는 'FROM_IS_EMPTY'입니다. 이것이 PHP 폼의 첫 번째 오류입니다. 양식이 가득 차 있어도이 오류가 발생합니다. –

답변

3

ParamDataString은 /?이없는 name=%@&subject=%@...이어야합니다.

는 AND : [txtName.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],[txtSubject.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ...

또는 NSDictionary에로 모든 것을 작성하고 urlEncodedString 사용 :

NSDictionary *postParams = [[NSDictionary alloc] initWithObjectsAndKeys: txtName.text, @"foo", txtSubject.text, @"bar", nil]; 
//... 
NSString *sPostParams = [postParams urlEncodedString]; 
[request setHTTPBody:[NSData dataWithBytes:[sPostParams UTF8String] length:[sPostParams length]]]; 

또 다른 버그를 찾았 HTTP 메소드는 POST해야한다 "_REQUEST는"않습니다 당신은 입력 문자열을 탈출해야 존재하지 않습니다 ... [request setHTTPMethod:@"POST"];

+0

여전히 작동하지 않습니다 .. –

+2

"실무실"은 오류에 대한 설명이 아닙니다 ... – pencil

+0

'FROM_IS_EMPTY'와 같은 오류로 작동하지 않습니다. 이것은 PHP 파일의 첫 번째 오류 메시지로, 일반적으로 양식 비어 있습니다. –

관련 문제