-1

Webサイト。

これはよくある問題のように感じますが、Googleにとっては難しい問題です。

INSERTコードのコメントで説明されているように、値の挿入は以前は問題ではありませんでしたが、その下にクエリを追加すると機能しなくなりました。

$user = $_POST['name'];
$night = $_POST['club'];
$query = mysql_query("SELECT day FROM nights WHERE name = '$night'");
$email = $_POST['email'];

while ($row = mysql_fetch_assoc($query)) {

    $date = getFullDateString($row['day']);
    $date2 = getDateString($row['day']);

}

// this one previously worked but now enters into the database with $user as "Array"
mysql_query("INSERT INTO guestlists (guest, night, date) VALUES('$user', '$night', '$date') ") or die(mysql_error());

$guest1 = $_POST['name1'];
$guest2 = $_POST['name2'];

// these were added later and work fine but seem to have had an effect on the query above
mysql_query("INSERT INTO guestlists (guest, night, date) VALUES('$guest1', '$night', '$date') ") or die(mysql_error());
mysql_query("INSERT INTO guestlists (guest, night, date) VALUES('$guest2', '$night', '$date') ") or die(mysql_error());

foreach ($_POST as $key){
    if (is_array($key)){
        foreach ($key as $key2 => $value){
            mysql_query("INSERT INTO guestlists (guest, night, date) VALUES('$value', '$night', '$date') ") or die(mysql_error());

        }
    }
}
4

3 に答える 3

1

あなたのウェブサイトには次のものがあります。

<input class='input' type='text' name='name["+currentArrayNum+"]' value='' />

フォームを生成します。引数はname[...]最終的にphp$_POST['name']になり、配列になります。これを強制的に文字列にすると、文字列はになりますArray。したがって、各名前を処理するために、を$user使用して繰り返し処理します。foreach

また、SQLインジェクションについても読んでください!

于 2012-06-13T09:58:05.293 に答える
1

guests[]再度使用するのではなく、ゲストHTML入力の名前をに変更する必要がありますname。名前の競合があります。

javascriptコードでこれを修正する必要があります:

var name = $("<p><input class='input' type='text' name='guests[]' value='' /></p>");

そしてあなたのHTMLコードで:

<input class="input" type="text" name="guests[]" />

その後、PHPコードはguest変数を配列として処理する必要があります。

$guests = $_POST['guests'];

foreach ($guests as $guest)
{
    mysql_query("INSERT INTO guestlists (guest, night, date) VALUES('$guest', '$night', '$date') ") 
    or die(mysql_error());
}

guests[1]、、などguests[2]に行く必要はないことに注意してください。guests[3]

于 2012-06-13T10:11:47.783 に答える
0

次のようなフォームフィールドを挿入しているJavascriptがページにあります。

<input class="input" type="text" name="name[5]" value="">

部分はここname="name[5]"であなたの問題を引き起こしているものです-それは$_POST['name']提出されると配列に変わります。そのコードをリファクタリングする必要があります。

于 2012-06-13T09:58:07.273 に答える