
세션을 저장하는 방식은 다음과 같습니다.
1. 세션 데이터를 생성합니다. 예를 들어, 사용자 아이디, 이름, 로그인 시간 등이 포함됩니다.
2. 세션 데이터를 저장할 위치를 결정합니다. 예를 들어, 파일이나 DB를 사용할 수 있습니다.
3. 세션 데이터를 저장합니다. 예를 들어, 파일에 데이터를 기록하거나 DB에 INSERT 문을 실행합니다.
4. 세션 데이터를 불러옵니다. 예를 들어, 파일에서 데이터를 읽거나 DB에서 SELECT 문을 실행합니다.
세션을 저장하는 코드 예제는 다음과 같습니다.
파일 저장 예제
#hostingforum.kr
php
function session_open($save_path, $session_name) {
return true;
}
function session_close() {
return true;
}
function session_read($session_id) {
$data = file_get_contents($session_id);
return $data;
}
function session_write($session_id, $data) {
file_put_contents($session_id, $data);
return true;
}
function session_destroy($session_id) {
unlink($session_id);
return true;
}
function session_gc($maxlifetime) {
$files = glob('sessions/*');
foreach ($files as $file) {
if (filemtime($file) + $maxlifetime < time()) {
unlink($file);
}
}
return true;
}
session_set_save_handler(
'session_open',
'session_close',
'session_read',
'session_write',
'session_destroy',
'session_gc'
);
DB 저장 예제
#hostingforum.kr
php
function session_open($save_path, $session_name) {
return true;
}
function session_close() {
return true;
}
function session_read($session_id) {
$db = new PDO('sqlite:session.db');
$stmt = $db->prepare('SELECT data FROM sessions WHERE id = :id');
$stmt->bindParam(':id', $session_id);
$stmt->execute();
$data = $stmt->fetchColumn();
return $data;
}
function session_write($session_id, $data) {
$db = new PDO('sqlite:session.db');
$stmt = $db->prepare('INSERT INTO sessions (id, data) VALUES (:id, :data)');
$stmt->bindParam(':id', $session_id);
$stmt->bindParam(':data', $data);
$stmt->execute();
return true;
}
function session_destroy($session_id) {
$db = new PDO('sqlite:session.db');
$stmt = $db->prepare('DELETE FROM sessions WHERE id = :id');
$stmt->bindParam(':id', $session_id);
$stmt->execute();
return true;
}
function session_gc($maxlifetime) {
$db = new PDO('sqlite:session.db');
$stmt = $db->prepare('DELETE FROM sessions WHERE id = :id AND data IS NULL');
$stmt->bindParam(':id', $session_id);
$stmt->execute();
return true;
}
session_set_save_handler(
'session_open',
'session_close',
'session_read',
'session_write',
'session_destroy',
'session_gc'
);
이러한 코드를 사용하여 세션을 저장하고 불러올 수 있습니다.
2025-03-22 21:54