-
- CREATE TABLE `db_session` (
- `sesskey` char(32) NOT NULL,
- `expiry` int(11) unsigned NOT NULL,
- `value` text NOT NULL,
- PRIMARY KEY (`sesskey`)
- ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
コードをコピー
データベースは次を示します: db_session
列名: sesskey、expiry、value ここで: sesskey は主キーです。
Value はセッション内の値を保存します。
3. session_mysql.php ファイルを作成します。このファイルは、セッションを保存するメソッドを構築するために使用されます。パラメータを変更するだけで、直接使用できます。
session_mysql.php
PHPコード:
-
- $gb_DBname="db_myBBS";//データベース名
- $gb_DBuser="root";//データベースユーザー名
- $gb_DBpass="23928484";//データベースパスワード
- $gb_DBHOSTname ="localhost";//ホストの名前または IP アドレス
- $SESS_DBH="";
- $SESS_LIFE=get_cfg_var("session.gc_maxlifetime");//セッションの最大有効期間を取得します。
- function sess_open($save_path,$session_name){
- global $gb_DBHOSTname,$gb_DBname,$gb_DBuser,$gb_DBpass,$SESS_DBH;
- if(!$SESS_DBH=mysql_pconnect($gb_DBHOSTname,$gb_DBuser,$gb_DBpass)){
- echo "
- MySql エラー:".mysql_error()."
- ";
- die();
- }
- if(!mysql_select_db($gb_DBname,$SESS_DBH)){
- echo "
- MySqlエラー: ".mysql_error()."
- ";
- die();
- }
- return true;
- }
- function sess_close(){
- return true;
- }
- function sess_read($key){
- global $SESS_DBH,$SESS_LIFE;
- $qry="sesskey = '$key' および有効期限の db_session から値を選択 > ".time();
- $qid=mysql_query($qry,$SESS_DBH);
- if(list( $value)=mysql_fetch_row($qid)){
- return $value;
- }
- return false;
- }
- function sess_write($key,$val){
- global $SESS_DBH,$SESS_LIFE;
- $expiry=time() +$SESS_LIFE;
- $value=$val;
- $qry="db_session 値に挿入('$key',$expiry,'$value')";
- $qid=mysql_query($qry,$SESS_DBH);
- if(!$qid){
- $qry="update db_session set expiry=$expiry, value='$value' where sesskey='$key' and expiry >".time();
- $qid=mysql_query($ qry,$SESS_DBH);
- }
- return $qid;
- }
- function sess_destroy($key){
- global $SESS_DBH;
- $qry="sesskey = '$key' の db_session から削除します";
- $qid=mysql_query ($qry,$SESS_DBH);
- return $qid;
- }
- function sess_gc($maxlifetime){
- global $SESS_DBH;
- $qry="有効期限のある db_session から削除 < ".time();
- $qid= mysql_query($qry,$SESS_DBH);
- return mysql_affected_rows($SESS_DBH);
- }
- session_module_name();
- session_set_save_handler("sess_open","sess_close","sess_read","sess_write","sess_destroy","sess_g c " );
- ?>
コードをコピーします
4. テストファイルを作成します。
作成した session_mysql.php ファイルは、使用する前に参照する必要があります。
ファイル: session_test.php
-
- include ("session_mysql.php");
- session_start();
- $_SESSION['abc']= "A: また来ます!";
- $_SESSION['meto ']= "B: 私もです ";
- $_SESSION['name']= "ルイ ";
- エコー "クリックしてください";
- ?>
コードをコピー
ファイル: get_session_test.php
-
- include ("session_mysql.php");
- session_start();
- echo $_SESSION['abc'];
- echo "
";
- echo $_SESSION[' meto'];
- echo "
"; - echo $_SESSION['name'];
- $_SESSION['wq']="12e";
- echo "
もう一度クリック";
- ?>
コードをコピー
ファイル: get_session_test2.php
-
- include ("session_mysql.php");
- session_start();
- echo $_SESSION['abc'];
- echo "
";
- echo $_SESSION[' meto'];
- echo "
"; - echo $_SESSION['name'];
- echo "
"; - echo $_SESSION['wq'];
- //session_destroy();/ /すべてのセッションを破棄するために使用される関数。
- ?>
コードをコピー
|