2

サイトに php ファイルがある場合、(objective-c を使用して) を変数に渡してページにエコーできるようにするにはNSStringどうすればよいですか? POST私はphpが初めてなので、これが明らかな場合は申し訳ありません。

使用ASIFormDataRequest:

NSURL *myURl = [[NSURL alloc] initWithString:@"http://www.mysite/something.php"];

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:myURl];

[request setDelegate:self];
[request setUsername:@"username"];
[request setPassword:@"password"];
[request setPostValue:@"This is a string" forKey:@"phpVar"];

[request startAsynchronous];

委任メソッド呼び出し:

-(void)requestFailed:(ASIHTTPRequest *)request
{
    NSError *error = [request error];
    NSLog(@"Failed %@ with code %d and with userInfo %@",[error domain],[error code],[error userInfo]);
}

-(void)requestFinished:(ASIHTTPRequest *)request
{
    NSLog(@"Finished : %@",[request responseString]);

}

ここにはいくつかの問題があります。

  1. 間違った資格情報を入力しても、requestFinished呼び出されるだけです。

編集- (1) を修正し、パスワードで保護されたディレクトリを作成し、そこに php ファイルを貼り付けました。

  1. 「これは文字列です」が php ファイルの phpVar に渡されず、ページに表示されません

これが私がphpで書いたものです:

<?php

$blah = $_POST['phpVar'];

echo $blah;

?> 

ご協力いただきありがとうございます。

4

1 に答える 1

0

このプロセスが崩壊する可能性のある場所がいくつかある可能性があります。

  1. ASIFormDataRequest のインスタンスにリテラルを設定しようとしているので、実際にその値が含まれていると想定しても問題ありません。
  2. 次に検証する項目は、POST が実際に PHP ページにアクセスしていることです (ただし、必ずしも正しい値が渡されるとは限りません)。これを行うにはいくつかの方法がありますが、最も簡単なのは Web サーバーのアクセス ログを表示することです。これを実現する方法は、サーバー (Apache、IIS など) によって異なります。
  3. スクリプトが実際にページにヒットしている場合、最後のステップは、どのリクエスト パラメータが渡されたか (存在する場合) を検証することです。特異値フォーム $_POST をダンプする代わりに、次のような関数呼び出しでそれらをエコーアウトすることにより、すべてのリクエスト値をより広く見ることをお勧めします。

.

<?php
var_dump($_REQUEST);
?>

これにより、$_GET、$_POST、および $_COOKIE のすべてが詳細に出力されます。これは、期待どおりに値が POST で送信されない場合に便利です。値が存在する場合、期待どおりに配信されるように、値にアクセスするか、リクエストの送信方法を変更するのは簡単です。

于 2012-09-11T22:12:24.737 に答える