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文字)
文字キャラクタを増やして精度を保持しつつ、セッション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が存在しない)場合は、空文字列("")を返す。