0

私はここで非常に混乱しています。基本的に、Blueホストサーバー上の.phpファイルに文字列をアップロードするiOSアプリがあります。

-(IBAction)plus{
if (counter>=0 && counter<240) {
counter=counter+1;
count.text = [NSString stringWithFormat:@"%i",counter];

    NSString* myString = [NSString stringWithFormat:@"%d",counter];

    NSString *receipt1 = @"This should work?";

    NSString *post =[NSString stringWithFormat:@"receipt=%@",receipt1];
    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding 
allowLossyConversion:YES];

    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSURL 
URLWithString:@"http://www.ryanmediaworks.com/validation.php"]];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-
Type"];
    [request setHTTPBody:postData];

    NSHTTPURLResponse* urlResponse = nil;
    NSError *error = [[NSError alloc] init];
    NSData *responseData = [NSURLConnection sendSynchronousRequest:request 
returningResponse:&urlResponse error:&error];
    NSString *result = [[NSString alloc] initWithData:responseData   
encoding:NSUTF8StringEncoding];
    NSLog(@"Response Code: %d", [urlResponse statusCode]);

    if ([urlResponse statusCode] >= 200 && [urlResponse statusCode] < 600)
    {
        NSLog(@"Response: %@", result);
    }

}

}

これが私の.phpファイルです:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>I hope this works!</title>
</head>
<body>
    <?php

if(_POST)
    {
 if($_POST['receipt'] == 'This should work?')
        {
            echo "post successfull";
        }
        else
    {
        echo "not post";
        }
    }
?>
</body>
</html>

これが奇妙な部分です...これは私のブラウザにあるものです:

<head>
    <title>I hope this works!</title>
</head>
<body>
    not post</body>
</html>

しかし、ここにXcodeの出力があります:

<head>
    <title>I hope this works!</title>
</head>
<body>
    post successfull</body>
</html>

'if'ステートメントはxcodeで機能しますが、ブラウザでは機能しないようです。つまり、正しい文字列が.phpにアップロードされるため、「postsucessfull」というフレーズが返されます。しかし、ブラウザで表示したときにフレーズが存在しませんか?

私はこれについて何か助けてくれて本当にありがたいです!

4

1 に答える 1

3

奇妙に思えます。これを試して

if(isset($_POST['receipt'])
{
 if($_POST['receipt'] == 'This should work?')
    {
        echo "post successfull";
    }
    else
{
    echo "not post";
    }
}
?>

また、ブラウザをチェックするとき、同じブラウザから(たとえば、フォームPOSTを介して)POSTリクエストを実行した後ですか?

あなたのiOSコードは投稿を行っており、それがそのリターンが成功する理由です。同じデバイス/ブラウザでその.phpページに投稿することなく.phpファイルをロードしている場合は、「投稿しない」と表示されます。

于 2013-03-27T05:48:33.657 に答える