【PHP】imput type ="image" で POSTされたkeyに_x _y が付いている
PHPで見覚えのないx や y が付いている
先日、社内の古いプログラムを調査したときに知った、今更な知識
あるところに、二つのファイルがありました…
foreach($_POST as $key =>$value){ if($key == "add_x"){ echo "追加だよ" elseif($key == "del_x"){ echo "削除だよ" end end
- hage.html
--省略 <form action="./hoge.php" method="POST"> <input type=text name="email" class="address_input"> <input type="image" name="add" src="./images/add.gif"> <input type="image" name="del" src="./images/del.gif"> </form> --省略
単純にhage.htmlのフォームからhage.phpにPOST投げている、平凡なプログラムなんですが、"add_x" と "del_x" ってどこから出てきたのか…とデザイナーさんと途方にくれました
分かってみればなんてことないない事だったのですが
input type = "image" は座標をPOSTする
要はクリックした位置を渡す仕様のようです ※Enterキーを押した場合は(0, 0)
<input type="image" name="add" src="./images/add.gif"> <input type="image" name="del" src="./images/del.gif">
こんな感じである場合、POSTされるのは add_x, add_y, del_x, del_y のkeyです(多分)
で、先述のPHPのプログラムの意図はこんな感じじゃないでしょうか
注意するところ
もし判定に使うのなら、_xだけではなく、yも入れてほしいな
_xだけだとぱっと分からないけれど、xとyがあればなんとなく”座標かな”って思う(かもしれない)
古いプログラムだと、何も考えずに_xのname付ける人もいそうだしね
普段からx、yのnameは使わない
逆に_x は座標のパラメータだ!って先入観で無駄な手間がかかりそう。
なので、極力使わないほうが良いなって思いました。
使えなくなる機能がある
- form.submit() が使えなくなる
- input=textでenter送信とかできない
botや不正対策に使えそうな気がしてきた
brand ってロゴの画像を置いておいて、aをクリックしてください、と書いておいて座標で判断する
ちょっとしたフォーム送信とか、掲示板とかに使えそうだけど聞いたことはないw
- 作者: 小川雄大,柄沢聡太郎,橋口誠
- 出版社/メーカー: 技術評論社
- 発売日: 2014/10/31
- メディア: Kindle版
- この商品を含むブログを見る