0

iPadアプリを介してオンラインでアクセスするMySQLDBにいくつかの値を挿入しようとしています。

データを送信します:

if(txtInput != nil){
        NSString *postVars = [NSString stringWithFormat:@"id=%d&input=%@", index, txtInput.text];
        NSLog(@"%d",index);
        index++;
        NSData *data = [postVars dataUsingEncoding:NSUTF8StringEncoding];

        NSString *strURL = @"http://localhost:8888/Insert.php";
        NSURL *url = [NSURL URLWithString:strURL];
        NSMutableURLRequest *req = [[NSMutableURLRequest alloc]initWithURL:url];
        [req setHTTPBody:data];
        [req setHTTPMethod:@"POST"];
        NSURLConnection *con = [NSURLConnection connectionWithRequest:req delegate:self];
    }

Webサービスのスクリプト:

<?php
$host = 'localhost';
$username = 'root';
$password = 'root';

$con = mysql_connect($host, $username, $password);
if(!$con)
{
echo "Failed connection";
echo "<br/>";
die('Connection failed');
}

mysql_select_db("unbounded", $con);

$ids = $_GET['id'];
$str = $_GET['input'];

$in= mysql_query("INSERT INTO `unbounded`.`stuff` (`id`, `string`) VALUES ('$ids','$str');");
echo $in;
echo "<br/>";
mysql_close($con);
?> 

PHPAdminページでアプリを実行すると、文字列値が空のときにアプリを実行するたびにid値が0に設定されていることがわかります。

ブラウザ経由でスクリプトを実行すると、データが正常に挿入されます。ちなみに、スクリプトviブラウザを実行すると、DBとの接続がしっかりと確立されていることがわかりました。。何が問題になるのでしょうか?最高の卒業生

4

1 に答える 1

1

iOS アプリでは、POST メソッドを使用してデータを送信しています

[req setHTTPMethod:@"POST"];

しかし、PHPではGETから読んでいます

$ids = $_GET['id'];

両方が同じ HTTP メソッドを使用している場合に機能するはずです

質問とは関係ありませんが、PHP コードはSQL インジェクション攻撃に対して脆弱です。

于 2013-02-05T00:09:39.663 に答える