SESSION管理2(PHP)

更新日2013-10-09 (水) 09:30:09

以下のようにSESSIONスタートするときはphpファイルの一番最初に以下の3行を追加

session_set_cookie_params(1000, '/renraku/', 'ism21.net', TRUE, TRUE);

第1パラメータ:有効時間(秒)
第2パラメータ:クッキー有効パス(クッキーは通常はクッキーを発行したサイトのどの ページからも読めるので指定する)
第3パラメータ:ドメインの指定(同一Apacheで複数ドメインを持つときなど)
第4パラメータ:SSL通信など安全通信でないとクッキーを渡さない(TRUE)
第5パラメータ:HTTPのみクッキーにアクセスを許可し、JavaScript のようなスクリプト 言語からはアクセスできなくなる(TRUE)
<?php
  session_set_cookie_params(1000, '/renraku/', 'ism21.net', TRUE, TRUE);
  session_name("renrakumail");
  session_start();

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/
xhtml1-strict.dtd">

(中略)

// 初めての認証
   if($name == $user && $pass == $password ){

        $_SESSION['renraku_user_id'] = sha1($name);
        $_SESSION['renraku_user_pass'] = sha1($pass);
        setmail();

// 2回目の認証
   }else if($_SESSION['renraku_user_id'] == sha1($user) && $_SESSION['renraku_user_pass'] == sha1($password)){
        setmail();

   }else{
// 認証失敗時
        echo "<p> 認証失敗!! </p>";
//以下は失敗時必要か不明
        unset($_SESSION['renraku_user_id']);
        unset($_SESSION['renraku_user_pass']);
   }

IDとパスワードで初めての認証を行う。認証されると、セッション変数名(renraku_user_idとrenraku_user_pass)にsha1でハッシュされた値を入れる。 2回目の認証はセッション名(renraku_user_idとrenraku_user_pass)の値を読み出して比較している。

/var/php5/session

renraku_user_id|s:40:"d0511d9e25cc1xxxxxxxxxxxxxxxxe8051168ae6";renraku_user_pass|s:40:"677c3961fdf357xxxxxxxxxxxxxxf7ff261392dd";

IEでの確認

ただしsession_set_cookie_paramsで有効時間がないとうまくできなようだ。
C:\Users\okada\AppData\Roaming\Microsoft\Windowsの下にTEXTファイルができる

renrakumail <--セッション名
9qgl8nisgokv0nt9ooxxxxxxxxxxxxxx
ism21.net/renraku/
9729
303703296
30327749
3196422154
30327746
*

またあるページによるとsession_set_cookie_paramsでは初期値設定でページ移動等では更新できないようである更新していくにはsetcookie関数を使用してセッションスタートした後変更するようだ(未確認)

参考

http://d.hatena.ne.jp/Kappuccino/20080726/1217049706


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-10-09 (水) 09:30:09 (1808d)