私はここでこの質問を検索しました..しかし、私は正しい答えを得ることができません...だから、私の質問を読んで、私に答えてください...ありがとうございます..
-------------- Session.php ------------------------
<?php
class WSession
{
function __construct() {
}
function sess_open($sess_path, $sess_name) {
return true;
}
function sess_close() {
return true;
}
function sess_read($sess_id) {
mysql_connect("test", "test", "test");
mysql_select_db("test");
$result = mysql_query("SELECT Data FROM sessions WHERE SessionID = '$sess_id';");
if (!mysql_num_rows($result)) {
//Session found, pull out data field value
$sess_Data = $results->data;
$CurrentTime = time();
mysql_query("INSERT INTO sessions (SessionID, DateTouched) VALUES ('$sess_id', $CurrentTime);");
return $sess_Data;
} else {
$CurrentTime = time();
extract(mysql_fetch_array($result), EXTR_PREFIX_ALL, 'sess');
mysql_query("UPDATE sessions SET DateTouched = $CurrentTime WHERE SessionID = '$sess_id';");
return "";
}
}
function sess_write($sess_id, $data) {
mysql_connect("test", "test", "test");
mysql_select_db("test");
$CurrentTime = time();
mysql_query("UPDATE sessions SET Data = '$data', DateTouched = $CurrentTime WHERE SessionID = '$sess_id';");
return true;
}
function sess_destroy($sess_id) {
mysql_connect("test", "test", "test");
mysql_select_db("test");
mysql_query("DELETE FROM sessions WHERE SessionID = '$sess_id';");
return true;
}
function sess_gc($sess_maxlifetime) {
mysql_connect("test", "test", "test");
mysql_select_db("test");
$CurrentTime = time();
mysql_query("DELETE FROM sessions WHERE DateTouched + $sess_maxlifetime < $CurrentTime;");
return true;
}
}
?>
------------------- Index.php ---------(MAIN FILE)----------------
require_once(session.php);
$handler = new WSession();
session_set_save_handler(array($handler, "sess_open"),
array($handler, "sess_close"),
array($handler, "sess_read"),
array($handler, "sess_write"),
array($handler, "sess_destroy"),
array($handler, "sess_gc"));
register_shutdown_function('session_write_close');
session_start();
$_SESSION['test'] = "testado";
これに続いて、ログインコントローラー(例:login.php)を呼び出しています。
---------------------- login.php ----------------------
リダイレクト後、ここでは保存ハンドラを使用してセッションを保存しようとしています。
$_SESSION['username'] = "XXXXXX";
$_SESSION['testing'] = "XXXXXX";
しかし、上記の値をDBに書き込んでいません。
メインファイルにある最初のデータのみを保存し、
test|s:9:"testado";
他の値も保存するようにガイドしてください。