오래된 세션 파일 자동 삭제 정보
오래된 세션 파일 자동 삭제
본문
요새 오래된 세션 파일의 처리문제에 대해 말씀들이 많아서 하나 만들었습니다.
지정된 날짜 이상된 세션 파일을 일괄 자동삭제 하는 방법입니다.
아래의 부분을 복사하여 adm 안에 적당한 이름으로 저장합니다.
<?php
$Ydel_date = 3;//일단위 세팅, 3일 이상 된 것은 삭제
$Ytime = time() - ($Ydel_date * 60 * 60 * 24);
$Ysession_path = session_save_path();
if (!preg_match("`/$`", $Ysession_path)) $Ysession_path .= '/';
$d = dir($Ysession_path);
while (false !== ($entry = $d->read())) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php') {
$session_mtime = filemtime($Ysession_path . $entry);
if ($Ytime > $session_mtime) unlink($Ysession_path . $entry);
}
}
$d->close();
?>
관리자모드에서는 항상 인클루드 되는 adm/admin.tail.php 를
에디터로 열어서 다음 라인을 추가하고 저장해 줍니다.
include_once("./자신이 저장한 파일이름");
이렇게 하면 관리자모드를 사용할 때마다 항상 특정일이 지난 세션 파일을 삭제합니다.
만약 관리자마다 실행하고 싶지 않으면
특정파일을 만들어서 메뉴에 추가해도 됩니다.
지정된 날짜 이상된 세션 파일을 일괄 자동삭제 하는 방법입니다.
아래의 부분을 복사하여 adm 안에 적당한 이름으로 저장합니다.
<?php
$Ydel_date = 3;//일단위 세팅, 3일 이상 된 것은 삭제
$Ytime = time() - ($Ydel_date * 60 * 60 * 24);
$Ysession_path = session_save_path();
if (!preg_match("`/$`", $Ysession_path)) $Ysession_path .= '/';
$d = dir($Ysession_path);
while (false !== ($entry = $d->read())) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php') {
$session_mtime = filemtime($Ysession_path . $entry);
if ($Ytime > $session_mtime) unlink($Ysession_path . $entry);
}
}
$d->close();
?>
관리자모드에서는 항상 인클루드 되는 adm/admin.tail.php 를
에디터로 열어서 다음 라인을 추가하고 저장해 줍니다.
include_once("./자신이 저장한 파일이름");
이렇게 하면 관리자모드를 사용할 때마다 항상 특정일이 지난 세션 파일을 삭제합니다.
만약 관리자마다 실행하고 싶지 않으면
특정파일을 만들어서 메뉴에 추가해도 됩니다.
추천
4
4
댓글 22개

좋은 팁 감사합니다..^^
엄청 고맙습니다...
G3에서는 그것때문에 엄청 느려지는듯해서 신경이 쓰였는데....
G4만들어서 빨리써봐야지....
G3에서는 그것때문에 엄청 느려지는듯해서 신경이 쓰였는데....
G4만들어서 빨리써봐야지....

좋은팁 입니다.
다음버전에서 관리자모드에서 [세션정리] 라고 기본으로 들어갔으면 합니다.
다음버전에서 관리자모드에서 [세션정리] 라고 기본으로 들어갔으면 합니다.
필요한 팁이면서
간단하고 좋으네요.
감사합니다.
다음버전에서 관리자모드에서 [세션정리] 라고 기본으로 들어갔으면 합니다. _2
간단하고 좋으네요.
감사합니다.
다음버전에서 관리자모드에서 [세션정리] 라고 기본으로 들어갔으면 합니다. _2

좋은 팁을 공개해 주셔서 감사드립니다.
무더운 날씨에 팁정보들은 단비같습니다.
무더운 날씨에 팁정보들은 단비같습니다.
유용한 팁이네요..삭제 잘됩니다.^^;;

관리자페이지의 세션정리 메뉴로 붙였는데 아주 잘 됩니다.....
디비 백업과 함께 그누보드의 기본으로 장착되었으면 좋겠습니다....^^
디비 백업과 함께 그누보드의 기본으로 장착되었으면 좋겠습니다....^^
감사합니다.^^
매번 '감사합니다' 만 연발하려니 쑥스럽고 죄송하네요.
그래도 무지무지 감사드려요.ㅎㅎ
매번 '감사합니다' 만 연발하려니 쑥스럽고 죄송하네요.
그래도 무지무지 감사드려요.ㅎㅎ

감사합니다~!
다음버전에서 관리자모드에서 [세션정리] 라고 기본으로 들어갔으면 합니다. _3
감사합니다.
d
감사합니다
팁강좌 강사합니다^^
오랜된 세션 파일 자동삭제법

저는 이런 에러가 나는데요..
Warning: dir(): open_basedir restriction in effect. File(/stmp/) is not within the allowed path(s): (/home/learn:/usr/lib/php:/usr/local/lib/php:/tmp:/usr/local/apache/htdocs/webmail) in /home/learn/public_html/shop/adm/session_delete.php on line 6
Warning: dir(/stmp/): failed to open dir: Operation not permitted in /home/learn/public_html/shop/adm/session_delete.php on line 6
Fatal error: Call to a member function on a non-object in /home/learn/public_html/shop/adm/session_delete.php on line 7
Warning: dir(): open_basedir restriction in effect. File(/stmp/) is not within the allowed path(s): (/home/learn:/usr/lib/php:/usr/local/lib/php:/tmp:/usr/local/apache/htdocs/webmail) in /home/learn/public_html/shop/adm/session_delete.php on line 6
Warning: dir(/stmp/): failed to open dir: Operation not permitted in /home/learn/public_html/shop/adm/session_delete.php on line 6
Fatal error: Call to a member function on a non-object in /home/learn/public_html/shop/adm/session_delete.php on line 7

음 저 에러 내용을 보면은
어떠한 연유에서 $Ysession_path = session_save_path(); 가 제대로 된 세션 저장 디렉토리 경로를 가져오지 못하는 것 같습니다.
이럴겨우 강제로 패스를 지정해주시면 될듯합니다.
$Ysession_path = '/home/어쩌구 저쩌구/세션디렉토리';
어떠한 연유에서 $Ysession_path = session_save_path(); 가 제대로 된 세션 저장 디렉토리 경로를 가져오지 못하는 것 같습니다.
이럴겨우 강제로 패스를 지정해주시면 될듯합니다.
$Ysession_path = '/home/어쩌구 저쩌구/세션디렉토리';
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/5073
여기 올려주신 팁을 적용하고 관리자 메뉴에 클릭할 수 있도록 파일로 저장하였습니다.
그래서 메뉴에서 클릭을 하면
아래와 같은 오류가 뜹니다.
Warning: unlink(/tmp/sess_e5c2b22810c4bbfaa20f3f298764496e): Operation not permitted in /home/hosting_users/narang/www/adm/sesout.php on line 12
12번째 줄은
if ($Ytime > $session_mtime) unlink($Ysession_path . $entry);
입니다.
3일 이내의 세션 말고 실시간 생성된 세션까지 정리 되게 하려면 어떻게 해야 하는지요?
고수님들의 좋은 방법 부탁 드립니다.
여기 올려주신 팁을 적용하고 관리자 메뉴에 클릭할 수 있도록 파일로 저장하였습니다.
그래서 메뉴에서 클릭을 하면
아래와 같은 오류가 뜹니다.
Warning: unlink(/tmp/sess_e5c2b22810c4bbfaa20f3f298764496e): Operation not permitted in /home/hosting_users/narang/www/adm/sesout.php on line 12
12번째 줄은
if ($Ytime > $session_mtime) unlink($Ysession_path . $entry);
입니다.
3일 이내의 세션 말고 실시간 생성된 세션까지 정리 되게 하려면 어떻게 해야 하는지요?
고수님들의 좋은 방법 부탁 드립니다.
G4 버젼에는 관리자 모드에 세션정리가 있지만 게을러서...
유창화님의 팁을 조금 손봤습니다.
* * *
다음을 session_delete.php 로 만듭니다.
그 화일을 $g4[path] (최상위 head.php랑 같은데) 에 올립니다.
<?
if ($is_admin == "super") { // 최고 관리자가 로그인 했을때만....
$del_date = 3;//일단위 세팅, 3일 이상 된 것은 삭제
$kill_session_time = time() - ($del_date * 60 * 60* 24);
$kill_session_path = "$g4[path]/data/session"; // 세션이저장된 디렉토리
if (!preg_match("`/$`", $kill_session_path)) $kill_session_path .= '/';
$d = dir($kill_session_path);
while (false !== ($entry = $d->read())) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php') {
$session_mtime = filemtime($kill_session_path . $entry);
if ($kill_session_time > $session_mtime) unlink($kill_session_path . $entry);
}
}
$d->close();
}
?>
tail.php의 끝부분을 다음과 같이 처리 합니다.
<?
include_once("$g4[path]/tail.sub.php");
include_once("$g4[path]/session_delete.php"); // 요부분을 추가 합니다.
?>
유창화님의 팁을 조금 손봤습니다.
* * *
다음을 session_delete.php 로 만듭니다.
그 화일을 $g4[path] (최상위 head.php랑 같은데) 에 올립니다.
<?
if ($is_admin == "super") { // 최고 관리자가 로그인 했을때만....
$del_date = 3;//일단위 세팅, 3일 이상 된 것은 삭제
$kill_session_time = time() - ($del_date * 60 * 60* 24);
$kill_session_path = "$g4[path]/data/session"; // 세션이저장된 디렉토리
if (!preg_match("`/$`", $kill_session_path)) $kill_session_path .= '/';
$d = dir($kill_session_path);
while (false !== ($entry = $d->read())) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php') {
$session_mtime = filemtime($kill_session_path . $entry);
if ($kill_session_time > $session_mtime) unlink($kill_session_path . $entry);
}
}
$d->close();
}
?>
tail.php의 끝부분을 다음과 같이 처리 합니다.
<?
include_once("$g4[path]/tail.sub.php");
include_once("$g4[path]/session_delete.php"); // 요부분을 추가 합니다.
?>
스크랩 해둬야겠어요 하핫
유용하군요. 감솨^^
적용했는데 잘되는거 같습니다
좋은 정보 감사드립니다 스크랩도 추가 ^^
좋은 정보 감사드립니다 스크랩도 추가 ^^