入力データの受け取りと処理
フォームデータの受け取り
- 受け取り
-
- $_GET['変数名'];
-
- 変数名←フォームの[name]属性値
- 値←フォームの[value]属性値
GETとPOST
- GET
- POST
複数データ受け取り(チェックボックス)
- 入力フォーム
- ※複数回答しても選択結果を一つしか受け取れない
- 複数回答を受け取る
-
PHPではチェックボックスを普通に用いても、複数選択されたデータを受け取ることはできない。PHPでは複数データの受渡は配列を用いる。
その際、入力フォーム側でも修正が必要である。
※フォームタグ内のname属性値に配列を示す[]を付けている
※$_GET['変数名']は配列。
注意点
- XSS(クロスサイトスクリプティング)
- ユーザが入力するデータはセキュリティホールとなり得る(スクリプトコードを埋め込まれる)。
- 対策
-
- string htmlspecialchars('文字列',ENT_QUOTES);
- 文字列のhtml内での特別な文字を変換する
- 「<」→<
- 「>」→>
- 「"」→"
ログイン認証システム
- パスワードの暗号化
-
パスワードを平文のまま保存するのは危険。なのでサーバには暗号化された状態で保存しておく。
この暗号化パスワードは「不可逆」。
- ログイン認証システム
-
暗号化されたパスワードを用いて、ログイン認証を行う。
不可逆の暗号化がなされているため、入力されたパスワードも暗号化してから、比較する(暗号化したもの同士で比較して等しければ正しいパスワードと見なす)。
- 暗号化パスワードの作成
- 暗号化パスワードを作成するスクリプト