2012-05-01 14 views
0

私はObjective-cのプログラミングにかなり新しく、PHPの知識はほとんどありません。 とにかく、ユーザー名とパスワードの2つのテキストフィールドと、Webサイトのサインインページにユーザー名/パスワードを入力し、アカウントに接続すると考えられるボタンがある、アプリケーションのログイン画面を作成しようとしています。 私は正しい道の上だかはわからないが、ここで私が作ったコードのサンプルです:あなたは私がログインしようとしているウェブサイトを見ることができるようにXCodeのユーザー名/パスワードを使用してウェブサイトにログインするにはどうすればよいですか?

-(IBAction)ButtonClicked:(id)sender 
{ 
    NSString *content = @"username=blabla&password=123456"; 
    NSData *data=[content dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
    NSString *postlenght=[NSString stringWithFormat:@"%d",[data length]]; 

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://roadster.co.il/forums/ucp.php?mode=login"]]; 
    [request setHTTPMethod:@"POST"]; 
    [request setValue:postlenght forHTTPHeaderField:@"Content-Length"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Length"]; 
    [request setHTTPBody:data]; 
    NSError *error=nil; 
    NSURLResponse *response=nil; 
    NSData *result=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

    [webview loadRequest:request]; 
} 

http://roadster.co.il/forums/ucp.php?mode=login Iであります申し訳ありませんが、ウェブサイトはヘブライ語ですが、問題ではありません。なぜこのコードを使ってサインインできないのか教えてください。 (実際のパスワード/ユーザ名で試してみました)

+0

のあなたの知識場合PHPはほとんど何もありませんが、ログインコードを投稿したいかもしれませんが、どうやってこれをどうやって行うのか注意してください。 – esqew

+1

次の行: '[setValue:@" application/x-www "Content-Length"]の代わりに "Content-Type"がなければなりません。問題がありますか? – kuba

+0

私はそれを "Content-タイプ "でも、Webビューはログインpでウェブサイトをロードするだけです年齢、それは私がログインしている私には表示されません。 – Adi

答えて

1

あなたはリクエストを2回試行しています。

NSError *error=nil; 
NSURLResponse *response=nil; 
NSData *result=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

[webview loadRequest:request]; 

+sendSynchronousRequest:returningResponse:error:-loadRequest:両方のサーバにリクエストを送信します。あなたはどちらか一方をしたいだけです。最初の3行のコードを削除するか、-loadHTMLString:baseURL:を使用して結果をWebビューに読み込みます。

NSString *HTMLString = [[[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding] autorelease]; 
[webview loadHTMLString:HTMLString baseURL:[NSURL URLWithString:@"http://roadster.co.il/forums/ucp.php?mode=login"]]; 
+0

私はあなたの提案をloadHTMLStringで試して、それは解決策に近づくようだが、まだそれはまだページ内の空のログインを読み込む動作しませんでした。それは私の情報をphpに与えたようです - "username = blabla&password = 123456"、しかし私はどこにでもログインしようとはしませんでした。私はログインボタンの機能を呼び出す方法があるのですか?私はそれが私が見逃していると思います。(あなたが他に思うなら正しいです) – Adi

+0

@Adi:これは、同期的に送信するか、非同期に送信するか、またはWebViewで行うかにかかわらず、要求を送信するものです。 –

関連する問題