発表用メモ

formタグ

type属性
text,submit

name属性
フィールドに名前をつける

action属性
フォームの送信ボタンを押して送信されるデータの送信先を指定する

method属性
データを送る方式
POSTもしくはGET

データの送信方法
input type=submitをクリックするとreceive.phpにデータを送信することができる

データを受信する
<?php $_POST['myname'] ?>

クロスサイトスクリプティング対策
クロスサイトスクリプティング:Webアプリケーションの脆弱性[1]もしくはそれを利用した攻撃
htmlspecialchars関数でエスケープ処理を行う
htmlspecialchars($_POST['myname'], ENT_QUOTES,'UTF-8');

(int)で数字に変換される
(int)$_POST['age'];

名前の入力は必須とする
名前が入力されていなかったら、名前の入力がありませんと表示するようにする。

preg_matchという関数を利用して正規表現を利用する。
何文字かの0−9までの文字ならOK
200以上の数字が入力されたらエラーになる。

strlen:文字数をチェックする関数
1文字が3バイトなので、10文字以上をエラーとしたい場合は30とする。

エラーがあれば再度フォームを表示させる。
エラーがなければ確認画面を出す。
if($err):エラーが存在すれば

sessionによってデータがサーバーに保存される。
sessionによってデータをサーバーに送ったり、サーバーから受け取ったりできる。

value属性によって次のページに行っても値を入れておくことができる。
value="'.$age.'"

Tokenを使用して、正しいユーザーかどうかを確認
確認ページでTokenを作成
SessionとFormのhiddenでTokenをセットする。
<input type="hidden" name="token" value="<?php print $token ?>">
ありがとうございましたページでSessionとformのトークンが合致するか確かめる。