Fieds_labo1

php-セッション

最終更新:

fieds_labo1

- view
管理者のみ編集可

php セッション


1.基本
  • セッションの動作はphp.iniの設定に依存する。
  • レンタルサーバの場合、cookieがOFFでセッション管理を行うと相対URLに自動的にセッションIDを付加することが多い。
  • 携帯電話はcookieが使えないのでセッションIDはURLで持ちまわる。
  • 絶対URLには、セッションIDは付加しない。(PHPセッションの仕様)
  • 初回表示時、クッキーの存在が確認できないため、相対URLにセッションIDを埋め込む。
  • PCの場合、cookie=ONでcookieを利用し、URLでセッションIDを持ちまわらないように絶対URLにするのが良い。
  • 携帯電話はPHPデフォルトのセッションネームを変更すると動作しない。
  • セッションの例;php.ini設定デフォルト。MD5ハッシュ32文字。
    • session.hash_function = 0
    • session.hash_bits_per_character = 4 (使用文字0-9,a-f)
    • PHPSESSID=f08b965a..........2de97d95cdbe6b
    • sess_4b1e384ad7412..........e52a5a174If

2.ハッシュ文字数の変更
文字キャラクタを増やして精度を保持しつつ、セッションID文字数を減らす。
●例1:SHA-1ハッシュの32文字。(通常SHA-1は40文字)
  • session.hash_function = 1
  • session.hash_bits_per_character = 5
  • 考え方:160 bits (SHA-1) / 5 bits = 32
  • セッションIDを32文字に保ちつつより安全なSHA-1ハッシュを使用。
●例2:MD5ハッシュの26文字。
  • session.hash_function = 0
  • session.hash_bits_per_character = 5
  • 考え方:128 bits (MD5) / 5 bits = 25.6 => 26文字
  • MD5ハッシュの精度を保ちつつ、文字数を削減。
  • hash_bits_per_character = 4 => 0-9,a-fを使用。
  • hash_bits_per_character = 5 => 0-9,a-vを使用。

3.関数
  • string session_id ([ string $id ] )
    • カレントセッションIDの取得または設定。
    • IDを指定するとカレントのセッションIDを置換する。
    • 戻り値:カレントのセッションのセッションID。カレントセッションが存在しない(カレントのセッションIDが存在しない)場合は、空文字列("")を返す。







記事メニュー
目安箱バナー