2014年10月23日木曜日

PHPmemo_day13

PHPの基本に関するメモ。参考にしているのはPHPによるWebアプリケーションスーパーサンプル第2版の第12章(セッション/クッキー)です。

セッションはデータの受け渡しに使われる、ユーザの情報を継続して管理するための仕組みである。

  • セッション情報が置かれるディレクトリはphp.iniのsession.save_pathに書かれている。
  • セッションの自動開始はphp.iniのsession.auto_startを参照する。1であれば自動で始まる。
  • セッションの開始をスクリプトで制御するにはスクリプトの最初の方で、session_start関数を呼び出せばよい。
  • セッション変数はスーパーグローバル変数で、$_SESSIONである。$_SESSION["name"]="abc";のように設定すればよい。これはPHP5以上であれば問題なく利用できる。
  • 設定されたセッション変数はunsetで削除できる。設定されているかどうかはisset関数で調べられる。
  • セッション変数の保存先はsession_save_path関数でスクリプト側から調べることができる。ディレクトリがないと保存できずエラーになるので、そのような問題が発生した場合の調査に用いる関数である。
  • session_id関数で現在のセッションIDを取得することができる。クッキーが使用できる場合はクッキーにセッションIDが保存される。クッキーが使えない環境では、ページの遷移の度にセッション変数を遷移先に渡さないとセッション情報が引き継げない。
  • セッションハイジャックを防ぐ方法としてsession_regenerare_id関数を使う方法がある。この関数はセッションIDを新しいものに置き換えることができる。最近のPHPではsession_regenerate_id(TRUE)とすることで、古いセッションデータが削除され、よりセキュアになる仕組みが提供されている。
  • クッキーはユーザ側でデータを保存するための仕組みである。ただし、悪意あるサイトなどにクッキーの情報を盗まれる危険性があるので、カード番号などの重要情報はクッキーに設定しないようにしておく必要がある。
  • クッキーにデータを設定するにはsetcookie関数を用いる。参照する場合は$_COOKIE["変数名"]とする。setcookie関数の引数には変数名、値、有効期限、パス、ドメイン、HTTPSが必要か否かを与えることができる。
  • クッキーのデータを削除するには、setcookie関数の引数に古い有効期限を与えればよい。それにより特定の変数名のデータを削除することができる。削除されたことを確認するにはisset関数の返り値がFALSEになっていることを調べればよい。

0 件のコメント:

コメントを投稿

フォロワー

ページビューの合計