0

PHPファイルから値を取得しようとしています。

私はこのようなJavaファイルを持っています

ArrayList<NameValuePair> al = new ArrayList<NameValuePair>();

for (int i = 0; i < name.size(); i++) 
{
    al.add(new BasicNameValuePair("names["+i+"]",String.valueOf(name.get(i))));

    System.out.println("arr is " +String.valueOf(name.get(i)+ "arrrr"+name.get(i)));
}

ここに name、ArrayListがあります。

次に、その名前ArrayListをphpに送信し、その配列をループしてデータベースに挿入します。

これは私のphpファイルです

$con = mysql_connect("localhost","aaa","aa");
mysql_select_db("aa", $con);

if (!$con)
{
    die('Could not connect: ' . mysql_error());
}

$arr[] = $_POST['names[]'];

foreach ($arr as $key) 
{
    $query="insert into Orders1(names) values('$key')";
    mysql_query($query);
}

データベースに(空の)値を挿入""しています。助けてください。

4

1 に答える 1

2

編集:そして今あなたはあなたのphpコードを削除したので、以下はあまり意味がありません...


htmlフォームで配列ベースのフィールド名を使用している場合(例:

その場合、フォームが送信されたときに$_POST配列に表示され[]ません。代わりに、$_POST['foo']これらのフォームフィールドに入力されたさまざまな値のサブ配列になります。

つまり、

$arr[] = $_POST['names[]'];

はほぼ確実に未定義の配列キーであり、を返しNULLます。これを配列に追加します$arr。$ arrをループして値を挿入しますが、そのnullのみを挿入します。

簡単に試してください:

foreach($_POST['names'] as $val) {
  $v = mysql_real_escape_string($val);
  $sql = "ISNERT INTO .... VALUES ('$v');
}

エスケープ機能の使用に注意してください。コードはSQLインジェクション攻撃に対して非常に脆弱であり、サーバーが完全にリモートで侵害される可能性があります。

于 2012-11-16T17:54:16.537 に答える