2012-02-08 3 views
0

私は奇妙な問題に遭遇しました。私はユーザーが彼の連絡先をアプリを通して保存できるところにmysqlデータベースを構築しました。彼はボタンをクリックするだけで連絡先情報を追加するだけです。次に、データがデータベースに追加されます。文字列にスペースが含まれていると、アプリケーションがデータベースを更新していません

ただし、連絡先の情報に姓、名、または電話番号の間にスペースが含まれていると、アプリはデータの受け入れを拒否します。私はエラーメッセージやそのような何かを得ることはありませんが、私はまた、任意の確認を取得しないでください。レコードはデータベースに存在しません。

私のPHPファイルに問題はありません(ファイルは間違いなく、ここで2回チェックされています)。

NSString *strURL = [NSString stringWithFormat:@"http://www.abc.com/phpFile.php?number=%@&name=%@&lastname=%@", number, firstName, lastName]; 

NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]]; 
     NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding]; 

     NSLog(@"%@", strResult); 
+1

コードを擬人化しないでください。それは、いくつかの人々が従うことを困難にする。 –

+0

コアデータを使用していますか?エンティティの属性タイプの1つが正しく設定されていない可能性があります。 – JDx

+0

@Paul:申し訳ありませんが、英語は母国語ではありません。私は時々持ち去られます。私はそれを編集します。 – Blade

答えて

5

スペース文字はURIで許可されていません: はここに私のコードです。スペースをエンコードするには%20を使用してください。 URIの一部として許可されていない他の文字もあります。 URIエンコーディングを検索します。

+0

ありがとうございます。私は同じことを考えていた。しかし、誰かがアプリケーションを使用するときにスペースがどこになるのか分からないので、私は自分のコードにどこに置くことができるのか分かりません。 – Blade

+1

エンコード方法については、次のリンクをご覧ください。[link](http://stackoverflow.com/questions/3140424/stringbyaddingpercentescapesusingencoding-not-working-with-nsstrings-with-0) – bbarnhart

2
NSString *strURL = [NSString stringWithFormat:@"http://www.abc.com/phpFile.php?number=%@&name=%@&lastname=%@", number, firstName, lastName]; 
strURL = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] 

NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]]; 
     NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding]; 

     NSLog(@"%@", strResult); 
関連する問題