2012-02-18 12 views
-3

私のアプリケーションからPHPコンタクトフォームを使用して電子メールを送信しようとしていますが、何らかの理由でアプリケーションから詳細を送信できません。問題が何であるか教えてください。最後に使用しているPHPフォームを添付しました。PHPフォームへのデータの送信中にエラーが発生しました

ウェブブラウザを使用してメールを送信しようとしたときに、http://www.bergerz.co.il/wp-content/themes/ecobiz/sendemailfromapp.php/?name=MYNAME&subject=SUBJECT&[email protected]&message=MESSAGEと書いても、それは完全に機能しています。ここ

-(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ファイルです:http://www.pastebin.com/BvaiMs04

私はまだ彼が働いていない、私の最新のコードにメッセージを編集しました。

+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ファイルの最初のエラーメッセージです。空に送られました。 –

関連する問題