• ベストアンサー

チェックボックスのvalueに変数を使った場合の取り出し方

どうしても、方法が分からず投稿しました。 会員にメール送信するプログラムですが、一部のチェックを入れた会員だけ に送信するプログラムを作ろうとしています。 チェックボックスのvalueに$col[email]という変数を用いてデータベース にあるメールアドレスを一度ループをかけてチェックボックスに表示します。 チェックボックス表示されたメールアドレスの中で、チェックの入っている アドレスだけにメールを送りたいのです。そこで、配列にして破線下のように してcheckboxのvalue値がどうなっているのか確かめてみると、$col[email]の ように表示されます。なんとか、$col[email]に代入された内部のメールアドレス を取り出したいのですが、詳しい方宜しくご指導お願いいたします。 $sql="SELECT simei,email FROM ********"; $res=mysql_query($sql); print '<font size="1">'; print '<form method="post" action="<?=SEVER[PHP_SELF]?>" name="address">'; print '<center><input type="button" onClick="submit()" name="sousin" value="チェック""></center><br>'; $i=0; while($col=mysql_fetch_array($res)){ $simei=mb_convert_encoding($col[simei],"SJIS","EUC"); print '<input type="checkbox"checked name="chek[]" value="$col[email]">'; print $col[email]."[".$simei."]<br>"; } --------------------------------------------------------------------------- $checkbox=$_REQUEST["chek"]; for($i=0;$i<sizeof($checkbox);$i++){ print $checkbox[$i]; print "<br>"; }

質問者が選んだベストアンサー

  • ベストアンサー
  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

>> print '<input type="checkbox"checked name="chek[]" value="$col[email]">'; 上記を print '<input type="checkbox"checked name="chek[]" value="'.$col[email].'">'; に変更すれば中身が見えるようなりますが、 メールアドレスを公開しても問題無いのですか? また、下記の部分はクロスサイトスクリプトの餌食ですが問題ありませんか? >> action="<?=SEVER[PHP_SELF]?>"

ityounomi
質問者

お礼

出ました~~!ありがとうございます^^。非常にうれしいです。 まだ、PHP勉強して日も浅いので良く分からないのですが、 クロスサイトスクリプトの餌食とありますが、どういう意味なのでしょうか。もしよければ教えていただければありがたいです。 action="<?=SEVER[PHP_SELF]?>"のところは、action="****.php"と しかり書いたほうが良いのでしょうか?

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • mpx
  • ベストアンサー率71% (149/209)
回答No.3

>> クロスサイトスクリプトの餌食とありますが、どういう意味なのでしょうか。 初心者が陥りやすい 昔から有名な脆弱性の一つです。 Cookie情報の盗み取りやフィッシングサイトへの誘導などに利用されます。 対策方法などは、下記ページなどを参照してください http://www.phppro.jp/phptips/archives/vol5/3 「PHP_SELF XSS」でWEB検索すれば他にも説明は見つかると思います。

ityounomi
質問者

お礼

ありがとうございます。調べてみます。

すると、全ての回答が全文表示されます。
  • nicolish
  • ベストアンサー率72% (13/18)
回答No.2

$_SERVERはユーザー入力とは無関係だからクロスサイトスクリプティング脆弱性にはなりません。 まあ、そんな判断をせず、「原則すべての画面出力は事前にHTMLエスケープをすべき」なのですが。 氏名とメールアドレスを画面に出力する部分のほうは問題です。 氏名に「<font size="10">田中山田田吾作乃進</font>」と打ち込まれる可能性は考慮していますか? メールアドレスに「">でもそんなの関係ねえ!<"」とか書かれたら文字列が表示されたりしませんか? 登録側で別途処理を行なっているならば安全なのですが。

ityounomi
質問者

お礼

そうですね。まずいですね。 何を入力してくるか分からないですから、対応策をとらないといけないですね。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A