プロが教える店舗&オフィスのセキュリティ対策術

みなさんのお知恵をお貸しください。
やりたいことは以下の通りです。

①MySQLから任意のデータを検索しその結果を一覧【取得カラムは名前とIPアドレス】表示する。
②kensaku.phpにて一覧の結果毎にボタンを設置し、送りたいIPアドレスをPOSTかGETで別のPHP(ip-add.php)に値を送りたい。

①については出来たのですが、②の部分で1つ以上結果が出た場合に結果をボタン送信したところ
どれを押しても一覧の最後に表示した結果を送ってしまいます。

■カラムの例
wan_addres =10.10.1.1, 10.30.2.2, 10.50.3.3
hostname = 青木、青木、田中

失敗例として2つ検索結果が表示された場合 青木10.10.1.1のボタンを押したところ10.30.2.2が
値として受け取ってしまいます。皆様のお知恵をお貸しください。

1.【アドレス送信】青木 10.10.1.1
2.【アドレス送信】青木 10.30.2.2


■kensaku.php
<form>
<form action="acsion.php" method="post">


<?php


$res = $db->RunQuery("SELECT * FROM hostname WHERE hostname='$host' LIMIT 0,10;");
if($db->GetRowCount($res)>0){


println('<table>');
println('<tr><th>アドレス送信</th><th>名前</th><th>アドレス</th></tr>');
while( $row = $db->FetchRow($res) ){
println('<tr>
<td>
<input name="test01" type="hidden" value="'.$row['wan_address'].'" />
<input type="submit" value="送信" name ="test01"/></td>
<td>'.$row['hostname'].'</td>
<td>'.$row['wan_address'].'</td></tr>');

}
println('</table>');

}else{
println('<p>情報はありません</p>');
}
?>
</form>


■ip-add.php
<?php


$ipadd = htmlspecialchars($_POST['test01']);

echo $ipadd;

?>

A 回答 (1件)

行ごとに送信ボタンをつくっていますが、formが全体を覆っている状態なので


test01というnameの競合したデータが送られています。
しかもsubmit名にまで同じtest01を付けているので、かなりダメダメな状態

やるなら以下のどちらか?
(1)formを一つでやるなら、「test01[]」的な名称をつかって受け側で配列でうけ
submitのnameに該当する番号をつけておいて判断する
(2)各行の送信ボタンを囲むようにformを設置する
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!