MSN 메신저형 새쪽지 확인용 알림창 정보
MSN 메신저형 새쪽지 확인용 알림창
관련링크
첨부파일
본문
MSN 메신저형 쪽지기능? 제목을 뭐라고 해야할지 햇갈려서 이렇게 합니다.^^
G4를 설치하여 테스트중인 사이트에서 새로운 쪽지가왔을 경우 사용중인 MSN 메신저형 알림창 이며
이쁜 여비서가 항상 대기하고 있으면서 새로운 쪽지가 오면 상냥한 목소리로 안내까지 합니다.
이알림창은 제로보드 회원이신 알릭님이 공개하여 제로보드 사용자분들이
사용중인 것이며 그누보드용으로 개조 시켜본 것이며 FF(불여우) 에서도 정상작동 하며
단 한분이라도 사용하실분이 계실지 모르지만 올려 봅니다.
MSN 메신저형 알림창 만들기 작업시작
1,
첨부한 파일 안의 배경이미지 msg_back.png 와 목소리용 플레시 파일인 memo_on.swf 를
G4/bbs/img/ 안으로 업로드 합니다.
2,
g4/head.sub.php 의 내용중 상단부분의 아래의 코드를 주석처리를 해둡니다.
/*
// 쪽지를 받았나?
if ($member[mb_memo_call]) {
$mb = get_member($member[mb_memo_call], "mb_nick");
sql_query(" update {$g4[member_table]} set mb_memo_call = '' where mb_id = '$member[mb_id]' ");
alert($mb[mb_nick]."님으로부터 쪽지가 전달되었습니다.", $_SERVER[REQUEST_URI]);
}
*/
3,
위코드를 주석처리를 한후 마지막 끝에 아래의 코드를 추가합니다.
<?
// 레이어로 쪽지창 표시 시작
if($member[mb_memo_call]) {
echo " <embed src='$g4[bbs_path]/img/memo_on.swf' loop='false' width='1' height='1'></embed>";
$run = "<script language=\"JavaScript\">do_check ();msn_position();</script>";
}
else {
$run = "";
}
?>
<!-- 레이어로 쪽지창 표시 시작 -->
<script language="JavaScript1.2">
var msn_closed = true;
var msn_top = 0;
var msn_left = 0;
var msn_divheight = 165;
var msn_divwidth = 204;
function do_check () {
msn_closed = false;
}
function msn_position() {
if(!msn_closed) {
msn_top = document.body.scrollTop + document.body.clientHeight - msn_divheight;
msn_left = document.body.clientWidth - msn_divwidth;
document.all.kissme.style.top = msn_top;
document.all.kissme.style.left = msn_left;
document.all.kissme.style.display = "";
}
}
var old_ResizeHandler = window.onresize;
window.onresize = new Function("{if (old_ResizeHandler != null) old_ResizeHandler(); msn_position();}");
var old_ScrollHandler = window.onscroll;
window.onscroll = new Function("{if (old_ScrollHandler != null) old_ScrollHandler(); msn_position();}");
function hideLayer(layer) {
if(document.layers) {
layer = eval('document.layers.' + layer);
if(layer.display != 'none') layer.display = 'none';
else layer.display = '';
return;
}
layer = document.all[layer];
if(layer.style.display != 'none') {
layer.style.display='none';
}
else {
layer.style.display='';
}
msn_closed = true;
}
</script>
<div id="kissme" name="kissme" style="position:absolute; overflow: hidden; top:10; left:10; z-index: 999999; display: none; width:203; height:165; layer-background-color:rgb(255,204,255);">
<table width="200" height="160" align="center" border="0" cellspacing="0" cellpadding="0" background="<?=$g4[bbs_path]?>/img/msg_back.png">
<tr>
<td align=left height=20>
<font color="black"><?=$img_icon?> ::: 쪽지알림 :::</font>
</td>
<td align=center>
<a href='.javascript;' title='닫기' onclick='hideLayer("kissme")'><b> </b></button></a>
</td></tr>
<tr>
<td colspan=2 align=center>
<br><b><?=$member[mb_name]?></b> 님께<br><br>쪽지가 도착했습니다.<br>확인 하시겠습니까?<br><br>
<button style="border: 1px solid #93ACCF" onclick="window.open('<?=$g4[bbs_path]?>/memo.php','member_memo','width=610,height=460,status=no,toolbar=no,resizable=yes,scrollbars=yes');hideLayer('kissme');">메모열기</button> <button style="border: 1px solid #93ACCF" onclick='hideLayer("kissme")'> 창닫기 </button><br>
<br>
</td></tr>
</table>
</div>
<?=$run?>
<?
// 쪽지를 받았나?
if ($member[mb_memo_call]) {
$mb = get_member($member[mb_memo_call], "mb_nick");
sql_query(" update {$g4[member_table]} set mb_memo_call = '' where mb_id = '$member[mb_id]' ");
// alert($mb[mb_nick]."님으로부터 쪽지가 전달되었습니다.", $_SERVER[REQUEST_URI]);
}
?>
G4를 설치하여 테스트중인 사이트에서 새로운 쪽지가왔을 경우 사용중인 MSN 메신저형 알림창 이며
이쁜 여비서가 항상 대기하고 있으면서 새로운 쪽지가 오면 상냥한 목소리로 안내까지 합니다.
이알림창은 제로보드 회원이신 알릭님이 공개하여 제로보드 사용자분들이
사용중인 것이며 그누보드용으로 개조 시켜본 것이며 FF(불여우) 에서도 정상작동 하며
단 한분이라도 사용하실분이 계실지 모르지만 올려 봅니다.
MSN 메신저형 알림창 만들기 작업시작
1,
첨부한 파일 안의 배경이미지 msg_back.png 와 목소리용 플레시 파일인 memo_on.swf 를
G4/bbs/img/ 안으로 업로드 합니다.
2,
g4/head.sub.php 의 내용중 상단부분의 아래의 코드를 주석처리를 해둡니다.
/*
// 쪽지를 받았나?
if ($member[mb_memo_call]) {
$mb = get_member($member[mb_memo_call], "mb_nick");
sql_query(" update {$g4[member_table]} set mb_memo_call = '' where mb_id = '$member[mb_id]' ");
alert($mb[mb_nick]."님으로부터 쪽지가 전달되었습니다.", $_SERVER[REQUEST_URI]);
}
*/
3,
위코드를 주석처리를 한후 마지막 끝에 아래의 코드를 추가합니다.
<?
// 레이어로 쪽지창 표시 시작
if($member[mb_memo_call]) {
echo " <embed src='$g4[bbs_path]/img/memo_on.swf' loop='false' width='1' height='1'></embed>";
$run = "<script language=\"JavaScript\">do_check ();msn_position();</script>";
}
else {
$run = "";
}
?>
<!-- 레이어로 쪽지창 표시 시작 -->
<script language="JavaScript1.2">
var msn_closed = true;
var msn_top = 0;
var msn_left = 0;
var msn_divheight = 165;
var msn_divwidth = 204;
function do_check () {
msn_closed = false;
}
function msn_position() {
if(!msn_closed) {
msn_top = document.body.scrollTop + document.body.clientHeight - msn_divheight;
msn_left = document.body.clientWidth - msn_divwidth;
document.all.kissme.style.top = msn_top;
document.all.kissme.style.left = msn_left;
document.all.kissme.style.display = "";
}
}
var old_ResizeHandler = window.onresize;
window.onresize = new Function("{if (old_ResizeHandler != null) old_ResizeHandler(); msn_position();}");
var old_ScrollHandler = window.onscroll;
window.onscroll = new Function("{if (old_ScrollHandler != null) old_ScrollHandler(); msn_position();}");
function hideLayer(layer) {
if(document.layers) {
layer = eval('document.layers.' + layer);
if(layer.display != 'none') layer.display = 'none';
else layer.display = '';
return;
}
layer = document.all[layer];
if(layer.style.display != 'none') {
layer.style.display='none';
}
else {
layer.style.display='';
}
msn_closed = true;
}
</script>
<div id="kissme" name="kissme" style="position:absolute; overflow: hidden; top:10; left:10; z-index: 999999; display: none; width:203; height:165; layer-background-color:rgb(255,204,255);">
<table width="200" height="160" align="center" border="0" cellspacing="0" cellpadding="0" background="<?=$g4[bbs_path]?>/img/msg_back.png">
<tr>
<td align=left height=20>
<font color="black"><?=$img_icon?> ::: 쪽지알림 :::</font>
</td>
<td align=center>
<a href='.javascript;' title='닫기' onclick='hideLayer("kissme")'><b> </b></button></a>
</td></tr>
<tr>
<td colspan=2 align=center>
<br><b><?=$member[mb_name]?></b> 님께<br><br>쪽지가 도착했습니다.<br>확인 하시겠습니까?<br><br>
<button style="border: 1px solid #93ACCF" onclick="window.open('<?=$g4[bbs_path]?>/memo.php','member_memo','width=610,height=460,status=no,toolbar=no,resizable=yes,scrollbars=yes');hideLayer('kissme');">메모열기</button> <button style="border: 1px solid #93ACCF" onclick='hideLayer("kissme")'> 창닫기 </button><br>
<br>
</td></tr>
</table>
</div>
<?=$run?>
<?
// 쪽지를 받았나?
if ($member[mb_memo_call]) {
$mb = get_member($member[mb_memo_call], "mb_nick");
sql_query(" update {$g4[member_table]} set mb_memo_call = '' where mb_id = '$member[mb_id]' ");
// alert($mb[mb_nick]."님으로부터 쪽지가 전달되었습니다.", $_SERVER[REQUEST_URI]);
}
?>
추천
10
10
댓글 21개

헐랭이님...넘 이쁜데요...^^
쪽지기능안내
좋고 재미나긴 한데 하필 디자인 마저 msn 스러우면..ㅠ.ㅠ
매우 굿입니다요,,,그누의 발전하는 모습이....헐랭이님 감사 합니다..

저두 응용만하여 짜집기 한것뿐입니다.^^
그누정신 // 플록님이 디자인과 코드수정을 샴푸걸 님이 디자인을 깔끔하게 만드신게 있으므로 참고 하세요.
http://avaschool.net/web/sub_data/board.php?bo_table=forum
그누정신 // 플록님이 디자인과 코드수정을 샴푸걸 님이 디자인을 깔끔하게 만드신게 있으므로 참고 하세요.
http://avaschool.net/web/sub_data/board.php?bo_table=forum
너무 좋습니다.
그런데
<!-- 레이어로 쪽지창 표시 시작 -->
<script language="JavaScript1.2">
상단 수정부분에서 수정하고 나면 에러가 뜨네요.
왠지 모르겠습니다.
상세한 설명을 부탁드립니다.
하다가 안되어서 멈추고 있는 순간입니다.
그런데
<!-- 레이어로 쪽지창 표시 시작 -->
<script language="JavaScript1.2">
상단 수정부분에서 수정하고 나면 에러가 뜨네요.
왠지 모르겠습니다.
상세한 설명을 부탁드립니다.
하다가 안되어서 멈추고 있는 순간입니다.

에러가 뜰경우 수정하면서 주석처리 부분 및 코드추가시 실수한 부분이 있는지 확인해 보세요.
그리고 가능하면 에러의 내용이라도 알려주시면 원인 파악이 쉽게 됩니다.
그리고 가능하면 에러의 내용이라도 알려주시면 원인 파악이 쉽게 됩니다.
홈피 주소 : www.wando.info 입니다.
g4 변수라고 하면서 메세지가 뜹니다.
확인 한번 해 주시고 해결 좀 해 주세요.
head.sub.php 소스입니다.
<?
// 이 파일은 새로운 파일 생성시 반드시 포함되어야 함
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$begin_time = get_microtime();
if (!$g4[title])
$g4[title] = $config[cf_title];
/*
// 쪽지를 받았나?
if ($member[mb_memo_call]) {
$mb = get_member($member[mb_memo_call], "mb_nick");
sql_query(" update {$g4[member_table]} set mb_memo_call = '' where mb_id = '$member[mb_id]' ");
alert($mb[mb_nick]."님으로부터 쪽지가 전달되었습니다.", $_SERVER[REQUEST_URI]);
}
*/
<?
// 레이어로 쪽지창 표시 시작
if($member[mb_memo_call]) {
echo " <embed src='$g4[bbs_path]/img/memo_on.swf' loop='false' width='1' height='1'></embed>";
$run = "<script language=\"JavaScript\">do_check ();msn_position();</script>";
}
else {
$run = "";
}
?>
<!-- 레이어로 쪽지창 표시 시작 -->
<script language="JavaScript1.2">
var msn_closed = true;
var msn_top = 0;
var msn_left = 0;
var msn_divheight = 165;
var msn_divwidth = 204;
function do_check () {
msn_closed = false;
}
function msn_position() {
if(!msn_closed) {
msn_top = document.body.scrollTop + document.body.clientHeight - msn_divheight;
msn_left = document.body.clientWidth - msn_divwidth;
document.all.kissme.style.top = msn_top;
document.all.kissme.style.left = msn_left;
document.all.kissme.style.display = "";
}
}
var old_ResizeHandler = window.onresize;
window.onresize = new Function("{if (old_ResizeHandler != null) old_ResizeHandler(); msn_position();}");
var old_ScrollHandler = window.onscroll;
window.onscroll = new Function("{if (old_ScrollHandler != null) old_ScrollHandler(); msn_position();}");
function hideLayer(layer) {
if(document.layers) {
layer = eval('document.layers.' + layer);
if(layer.display != 'none') layer.display = 'none';
else layer.display = '';
return;
}
layer = document.all[layer];
if(layer.style.display != 'none') {
layer.style.display='none';
}
else {
layer.style.display='';
}
msn_closed = true;
}
</script>
<div id="kissme" name="kissme" style="position:absolute; overflow: hidden; top:10; left:10; z-index: 999999; display: none; width:203; height:165; layer-background-color:rgb(255,204,255);">
<table width="200" height="160" align="center" border="0" cellspacing="0" cellpadding="0" background="<?=$g4[bbs_path]?>/img/msg_back.png">
<tr>
<td align=left height=20>
<font color="black"><?=$img_icon?> ::: 쪽지알림 :::</font>
</td>
<td align=center>
<a href='.javascript;' title='닫기' onclick='hideLayer("kissme")'><b> </b></button></a>
</td></tr>
<tr>
<td colspan=2 align=center>
<br><b><?=$member[mb_name]?></b> 님께<br><br>쪽지가 도착했습니다.<br>확인 하시겠습니까?<br><br>
<button style="border: 1px solid #93ACCF" onclick="window.open('<?=$g4[bbs_path]?>/memo.php','member_memo','width=610,height=460,status=no,toolbar=no,resizable=yes,scrollbars=yes');hideLayer('kissme');">메모열기</button> <button style="border: 1px solid #93ACCF" onclick='hideLayer("kissme")'> 창닫기 </button><br>
<br>
</td></tr>
</table>
</div>
<?=$run?>
<?
// 쪽지를 받았나?
if ($member[mb_memo_call]) {
$mb = get_member($member[mb_memo_call], "mb_nick");
sql_query(" update {$g4[member_table]} set mb_memo_call = '' where mb_id = '$member[mb_id]' ");
// alert($mb[mb_nick]."님으로부터 쪽지가 전달되었습니다.", $_SERVER[REQUEST_URI]);
}
?>
// 현재 접속자
//$lo_location = get_text($g4[title]);
//$lo_location = $g4[title];
// 게시판 제목에 ' 포함되면 오류 발생
$lo_location = addslashes($g4[title]);
if (!$lo_location)
$lo_location = $_SERVER[REQUEST_URI];
//$lo_url = $g4[url] . $_SERVER[REQUEST_URI];
$lo_url = $_SERVER[REQUEST_URI];
if (strstr($lo_url, "/$g4[admin]/") || $is_admin == "super") $lo_url = "";
$tmp_sql = " select count(*) as cnt from $g4[login_table] where lo_ip = '$_SERVER[REMOTE_ADDR]' ";
$tmp_row = sql_fetch($tmp_sql);
sql_query(" lock table $g4[login_table] write ", false);
if ($tmp_row['cnt'])
{
$tmp_sql = " update $g4[login_table] set mb_id = '$member[mb_id]', lo_datetime = '$g4[time_ymdhis]', lo_location = '$lo_location', lo_url = '$lo_url' where lo_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($tmp_sql, FALSE);
}
else
{
$tmp_sql = " insert into $g4[login_table] ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '$_SERVER[REMOTE_ADDR]', '$member[mb_id]', '$g4[time_ymdhis]', '$lo_location', '$lo_url' ) ";
sql_query($tmp_sql, FALSE);
// 시간이 지난 접속은 삭제한다
sql_query(" delete from $g4[login_table] where lo_datetime < '".date("Y-m-d H:i:s", $g4[server_time] - (60 * $config[cf_login_minutes]))."' ");
// 부담(overhead)이 있다면 테이블 최적화
$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g4[login_table]' ");
if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g4[login_table] ");
}
sql_query(" unlock tables ", false);
// 자바스크립트에서 go(-1) 함수를 쓰면 폼값이 사라질때 해당 폼의 상단에 사용하면
// 캐쉬의 내용을 가져옴. 완전한지는 검증되지 않음
header("Content-Type: text/html; charset=$g4[charset]");
$gmnow = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: 0"); // rfc2616 - Section 14.21
header("Last-Modified: " . $gmnow);
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: pre-check=0, post-check=0, max-age=0"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=<?=$g4[charset]?>">
<title><?=$g4[title]?></title>
<link rel="stylesheet" href="<?=$g4[path]?>/style.css" type="text/css">
</head>
<script language="javascript">
// 자바스크립트에서 사용하는 전역변수 선언
var g4_path = "<?=$g4[path]?>";
var g4_bbs = "<?=$g4[bbs]?>";
var g4_bbs_img = "<?=$g4[bbs_img]?>";
var g4_url = "<?=$g4[url]?>";
var g4_is_member = "<?=$is_member?>";
var g4_is_admin = "<?=$is_admin?>";
var g4_bo_table = "<?=$bo_table?>";
var g4_sca = "<?=$sca?>";
var g4_charset = "<?=$g4[charset]?>";
var g4_is_gecko = navigator.userAgent.toLowerCase().indexOf("gecko") != -1;
var g4_is_ie = navigator.userAgent.toLowerCase().indexOf("msie") != -1;
<? if ($is_admin) { echo "var g4_admin = '$g4[admin]';"; } ?>
</script>
<script language="javascript" src="<?=$g4[path]?>/js/common.js"></script>
<body topmargin="0" leftmargin="0" <?=$g4[body_script]?>>
<a name="g4_head"></a>
g4 변수라고 하면서 메세지가 뜹니다.
확인 한번 해 주시고 해결 좀 해 주세요.
head.sub.php 소스입니다.
<?
// 이 파일은 새로운 파일 생성시 반드시 포함되어야 함
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$begin_time = get_microtime();
if (!$g4[title])
$g4[title] = $config[cf_title];
/*
// 쪽지를 받았나?
if ($member[mb_memo_call]) {
$mb = get_member($member[mb_memo_call], "mb_nick");
sql_query(" update {$g4[member_table]} set mb_memo_call = '' where mb_id = '$member[mb_id]' ");
alert($mb[mb_nick]."님으로부터 쪽지가 전달되었습니다.", $_SERVER[REQUEST_URI]);
}
*/
<?
// 레이어로 쪽지창 표시 시작
if($member[mb_memo_call]) {
echo " <embed src='$g4[bbs_path]/img/memo_on.swf' loop='false' width='1' height='1'></embed>";
$run = "<script language=\"JavaScript\">do_check ();msn_position();</script>";
}
else {
$run = "";
}
?>
<!-- 레이어로 쪽지창 표시 시작 -->
<script language="JavaScript1.2">
var msn_closed = true;
var msn_top = 0;
var msn_left = 0;
var msn_divheight = 165;
var msn_divwidth = 204;
function do_check () {
msn_closed = false;
}
function msn_position() {
if(!msn_closed) {
msn_top = document.body.scrollTop + document.body.clientHeight - msn_divheight;
msn_left = document.body.clientWidth - msn_divwidth;
document.all.kissme.style.top = msn_top;
document.all.kissme.style.left = msn_left;
document.all.kissme.style.display = "";
}
}
var old_ResizeHandler = window.onresize;
window.onresize = new Function("{if (old_ResizeHandler != null) old_ResizeHandler(); msn_position();}");
var old_ScrollHandler = window.onscroll;
window.onscroll = new Function("{if (old_ScrollHandler != null) old_ScrollHandler(); msn_position();}");
function hideLayer(layer) {
if(document.layers) {
layer = eval('document.layers.' + layer);
if(layer.display != 'none') layer.display = 'none';
else layer.display = '';
return;
}
layer = document.all[layer];
if(layer.style.display != 'none') {
layer.style.display='none';
}
else {
layer.style.display='';
}
msn_closed = true;
}
</script>
<div id="kissme" name="kissme" style="position:absolute; overflow: hidden; top:10; left:10; z-index: 999999; display: none; width:203; height:165; layer-background-color:rgb(255,204,255);">
<table width="200" height="160" align="center" border="0" cellspacing="0" cellpadding="0" background="<?=$g4[bbs_path]?>/img/msg_back.png">
<tr>
<td align=left height=20>
<font color="black"><?=$img_icon?> ::: 쪽지알림 :::</font>
</td>
<td align=center>
<a href='.javascript;' title='닫기' onclick='hideLayer("kissme")'><b> </b></button></a>
</td></tr>
<tr>
<td colspan=2 align=center>
<br><b><?=$member[mb_name]?></b> 님께<br><br>쪽지가 도착했습니다.<br>확인 하시겠습니까?<br><br>
<button style="border: 1px solid #93ACCF" onclick="window.open('<?=$g4[bbs_path]?>/memo.php','member_memo','width=610,height=460,status=no,toolbar=no,resizable=yes,scrollbars=yes');hideLayer('kissme');">메모열기</button> <button style="border: 1px solid #93ACCF" onclick='hideLayer("kissme")'> 창닫기 </button><br>
<br>
</td></tr>
</table>
</div>
<?=$run?>
<?
// 쪽지를 받았나?
if ($member[mb_memo_call]) {
$mb = get_member($member[mb_memo_call], "mb_nick");
sql_query(" update {$g4[member_table]} set mb_memo_call = '' where mb_id = '$member[mb_id]' ");
// alert($mb[mb_nick]."님으로부터 쪽지가 전달되었습니다.", $_SERVER[REQUEST_URI]);
}
?>
// 현재 접속자
//$lo_location = get_text($g4[title]);
//$lo_location = $g4[title];
// 게시판 제목에 ' 포함되면 오류 발생
$lo_location = addslashes($g4[title]);
if (!$lo_location)
$lo_location = $_SERVER[REQUEST_URI];
//$lo_url = $g4[url] . $_SERVER[REQUEST_URI];
$lo_url = $_SERVER[REQUEST_URI];
if (strstr($lo_url, "/$g4[admin]/") || $is_admin == "super") $lo_url = "";
$tmp_sql = " select count(*) as cnt from $g4[login_table] where lo_ip = '$_SERVER[REMOTE_ADDR]' ";
$tmp_row = sql_fetch($tmp_sql);
sql_query(" lock table $g4[login_table] write ", false);
if ($tmp_row['cnt'])
{
$tmp_sql = " update $g4[login_table] set mb_id = '$member[mb_id]', lo_datetime = '$g4[time_ymdhis]', lo_location = '$lo_location', lo_url = '$lo_url' where lo_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($tmp_sql, FALSE);
}
else
{
$tmp_sql = " insert into $g4[login_table] ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '$_SERVER[REMOTE_ADDR]', '$member[mb_id]', '$g4[time_ymdhis]', '$lo_location', '$lo_url' ) ";
sql_query($tmp_sql, FALSE);
// 시간이 지난 접속은 삭제한다
sql_query(" delete from $g4[login_table] where lo_datetime < '".date("Y-m-d H:i:s", $g4[server_time] - (60 * $config[cf_login_minutes]))."' ");
// 부담(overhead)이 있다면 테이블 최적화
$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g4[login_table]' ");
if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g4[login_table] ");
}
sql_query(" unlock tables ", false);
// 자바스크립트에서 go(-1) 함수를 쓰면 폼값이 사라질때 해당 폼의 상단에 사용하면
// 캐쉬의 내용을 가져옴. 완전한지는 검증되지 않음
header("Content-Type: text/html; charset=$g4[charset]");
$gmnow = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: 0"); // rfc2616 - Section 14.21
header("Last-Modified: " . $gmnow);
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: pre-check=0, post-check=0, max-age=0"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=<?=$g4[charset]?>">
<title><?=$g4[title]?></title>
<link rel="stylesheet" href="<?=$g4[path]?>/style.css" type="text/css">
</head>
<script language="javascript">
// 자바스크립트에서 사용하는 전역변수 선언
var g4_path = "<?=$g4[path]?>";
var g4_bbs = "<?=$g4[bbs]?>";
var g4_bbs_img = "<?=$g4[bbs_img]?>";
var g4_url = "<?=$g4[url]?>";
var g4_is_member = "<?=$is_member?>";
var g4_is_admin = "<?=$is_admin?>";
var g4_bo_table = "<?=$bo_table?>";
var g4_sca = "<?=$sca?>";
var g4_charset = "<?=$g4[charset]?>";
var g4_is_gecko = navigator.userAgent.toLowerCase().indexOf("gecko") != -1;
var g4_is_ie = navigator.userAgent.toLowerCase().indexOf("msie") != -1;
<? if ($is_admin) { echo "var g4_admin = '$g4[admin]';"; } ?>
</script>
<script language="javascript" src="<?=$g4[path]?>/js/common.js"></script>
<body topmargin="0" leftmargin="0" <?=$g4[body_script]?>>
<a name="g4_head"></a>

아래처럼 수정해 주세요.
<?
// 이 파일은 새로운 파일 생성시 반드시 포함되어야 함
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$begin_time = get_microtime();
if (!$g4[title])
$g4[title] = $config[cf_title];
/*
// 쪽지를 받았나?
if ($member[mb_memo_call]) {
$mb = get_member($member[mb_memo_call], "mb_nick");
sql_query(" update {$g4[member_table]} set mb_memo_call = '' where mb_id = '$member[mb_id]' ");
alert($mb[mb_nick]."님으로부터 쪽지가 전달되었습니다.", $_SERVER[REQUEST_URI]);
}
*/
// 현재 접속자
//$lo_location = get_text($g4[title]);
//$lo_location = $g4[title];
// 게시판 제목에 ' 포함되면 오류 발생
$lo_location = addslashes($g4[title]);
if (!$lo_location)
$lo_location = $_SERVER[REQUEST_URI];
//$lo_url = $g4[url] . $_SERVER[REQUEST_URI];
$lo_url = $_SERVER[REQUEST_URI];
if (strstr($lo_url, "/$g4[admin]/") || $is_admin == "super") $lo_url = "";
$tmp_sql = " select count(*) as cnt from $g4[login_table] where lo_ip = '$_SERVER[REMOTE_ADDR]' ";
$tmp_row = sql_fetch($tmp_sql);
sql_query(" lock table $g4[login_table] write ", false);
if ($tmp_row['cnt'])
{
$tmp_sql = " update $g4[login_table] set mb_id = '$member[mb_id]', lo_datetime = '$g4[time_ymdhis]', lo_location = '$lo_location', lo_url = '$lo_url' where lo_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($tmp_sql, FALSE);
}
else
{
$tmp_sql = " insert into $g4[login_table] ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '$_SERVER[REMOTE_ADDR]', '$member[mb_id]', '$g4[time_ymdhis]', '$lo_location', '$lo_url' ) ";
sql_query($tmp_sql, FALSE);
// 시간이 지난 접속은 삭제한다
sql_query(" delete from $g4[login_table] where lo_datetime < '".date("Y-m-d H:i:s", $g4[server_time] - (60 * $config[cf_login_minutes]))."' ");
// 부담(overhead)이 있다면 테이블 최적화
$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g4[login_table]' ");
if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g4[login_table] ");
}
sql_query(" unlock tables ", false);
// 자바스크립트에서 go(-1) 함수를 쓰면 폼값이 사라질때 해당 폼의 상단에 사용하면
// 캐쉬의 내용을 가져옴. 완전한지는 검증되지 않음
header("Content-Type: text/html; charset=$g4[charset]");
$gmnow = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: 0"); // rfc2616 - Section 14.21
header("Last-Modified: " . $gmnow);
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: pre-check=0, post-check=0, max-age=0"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=<?=$g4[charset]?>">
<title><?=$g4[title]?></title>
<link rel="stylesheet" href="<?=$g4[path]?>/style.css" type="text/css">
</head>
<script language="javascript">
// 자바스크립트에서 사용하는 전역변수 선언
var g4_path = "<?=$g4[path]?>";
var g4_bbs = "<?=$g4[bbs]?>";
var g4_bbs_img = "<?=$g4[bbs_img]?>";
var g4_url = "<?=$g4[url]?>";
var g4_is_member = "<?=$is_member?>";
var g4_is_admin = "<?=$is_admin?>";
var g4_bo_table = "<?=$bo_table?>";
var g4_sca = "<?=$sca?>";
var g4_charset = "<?=$g4[charset]?>";
var g4_is_gecko = navigator.userAgent.toLowerCase().indexOf("gecko") != -1;
var g4_is_ie = navigator.userAgent.toLowerCase().indexOf("msie") != -1;
<? if ($is_admin) { echo "var g4_admin = '$g4[admin]';"; } ?>
</script>
<script language="javascript" src="<?=$g4[path]?>/js/common.js"></script>
<body topmargin="0" leftmargin="0" <?=$g4[body_script]?>>
<a name="g4_head"></a>
<?
// 레이어로 쪽지창 표시 시작
if($member[mb_memo_call]) {
echo " <embed src='$g4[bbs_path]/img/memo_on.swf' loop='false' width='1' height='1'></embed>";
$run = "<script language=\"JavaScript\">do_check ();msn_position();</script>";
}
else {
$run = "";
}
?>
<!-- 레이어로 쪽지창 표시 시작 -->
<script language="JavaScript1.2">
var msn_closed = true;
var msn_top = 0;
var msn_left = 0;
var msn_divheight = 165;
var msn_divwidth = 204;
function do_check () {
msn_closed = false;
}
function msn_position() {
if(!msn_closed) {
msn_top = document.body.scrollTop + document.body.clientHeight - msn_divheight;
msn_left = document.body.clientWidth - msn_divwidth;
document.all.kissme.style.top = msn_top;
document.all.kissme.style.left = msn_left;
document.all.kissme.style.display = "";
}
}
var old_ResizeHandler = window.onresize;
window.onresize = new Function("{if (old_ResizeHandler != null) old_ResizeHandler(); msn_position();}");
var old_ScrollHandler = window.onscroll;
window.onscroll = new Function("{if (old_ScrollHandler != null) old_ScrollHandler(); msn_position();}");
function hideLayer(layer) {
if(document.layers) {
layer = eval('document.layers.' + layer);
if(layer.display != 'none') layer.display = 'none';
else layer.display = '';
return;
}
layer = document.all[layer];
if(layer.style.display != 'none') {
layer.style.display='none';
}
else {
layer.style.display='';
}
msn_closed = true;
}
</script>
<div id="kissme" name="kissme" style="position:absolute; overflow: hidden; top:10; left:10; z-index: 999999; display: none; width:203; height:165; layer-background-color:rgb(255,204,255);">
<table width="200" height="160" align="center" border="0" cellspacing="0" cellpadding="0" background="<?=$g4[bbs_path]?>/img/msg_back.png">
<tr>
<td align=left height=20>
<font color="black"><?=$img_icon?> ::: 쪽지알림 :::</font>
</td>
<td align=center>
<a href='.javascript;' title='닫기' onclick='hideLayer("kissme")'><b> </b></button></a>
</td></tr>
<tr>
<td colspan=2 align=center>
<br><b><?=$member[mb_name]?></b> 님께<br><br>쪽지가 도착했습니다.<br>확인 하시겠습니까?<br><br>
<button style="border: 1px solid #93ACCF" onclick="window.open('<?=$g4[bbs_path]?>/memo.php','member_memo','width=610,height=460,status=no,toolbar=no,resizable=yes,scrollbars=yes');hideLayer('kissme');">메모열기</button> <button style="border: 1px solid #93ACCF" onclick='hideLayer("kissme")'> 창닫기 </button><br>
<br>
</td></tr>
</table>
</div>
<?=$run?>
<?
// 쪽지를 받았나?
if ($member[mb_memo_call]) {
$mb = get_member($member[mb_memo_call], "mb_nick");
sql_query(" update {$g4[member_table]} set mb_memo_call = '' where mb_id = '$member[mb_id]' ");
// alert($mb[mb_nick]."님으로부터 쪽지가 전달되었습니다.", $_SERVER[REQUEST_URI]);
}
?>
<?
// 이 파일은 새로운 파일 생성시 반드시 포함되어야 함
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$begin_time = get_microtime();
if (!$g4[title])
$g4[title] = $config[cf_title];
/*
// 쪽지를 받았나?
if ($member[mb_memo_call]) {
$mb = get_member($member[mb_memo_call], "mb_nick");
sql_query(" update {$g4[member_table]} set mb_memo_call = '' where mb_id = '$member[mb_id]' ");
alert($mb[mb_nick]."님으로부터 쪽지가 전달되었습니다.", $_SERVER[REQUEST_URI]);
}
*/
// 현재 접속자
//$lo_location = get_text($g4[title]);
//$lo_location = $g4[title];
// 게시판 제목에 ' 포함되면 오류 발생
$lo_location = addslashes($g4[title]);
if (!$lo_location)
$lo_location = $_SERVER[REQUEST_URI];
//$lo_url = $g4[url] . $_SERVER[REQUEST_URI];
$lo_url = $_SERVER[REQUEST_URI];
if (strstr($lo_url, "/$g4[admin]/") || $is_admin == "super") $lo_url = "";
$tmp_sql = " select count(*) as cnt from $g4[login_table] where lo_ip = '$_SERVER[REMOTE_ADDR]' ";
$tmp_row = sql_fetch($tmp_sql);
sql_query(" lock table $g4[login_table] write ", false);
if ($tmp_row['cnt'])
{
$tmp_sql = " update $g4[login_table] set mb_id = '$member[mb_id]', lo_datetime = '$g4[time_ymdhis]', lo_location = '$lo_location', lo_url = '$lo_url' where lo_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($tmp_sql, FALSE);
}
else
{
$tmp_sql = " insert into $g4[login_table] ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '$_SERVER[REMOTE_ADDR]', '$member[mb_id]', '$g4[time_ymdhis]', '$lo_location', '$lo_url' ) ";
sql_query($tmp_sql, FALSE);
// 시간이 지난 접속은 삭제한다
sql_query(" delete from $g4[login_table] where lo_datetime < '".date("Y-m-d H:i:s", $g4[server_time] - (60 * $config[cf_login_minutes]))."' ");
// 부담(overhead)이 있다면 테이블 최적화
$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g4[login_table]' ");
if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g4[login_table] ");
}
sql_query(" unlock tables ", false);
// 자바스크립트에서 go(-1) 함수를 쓰면 폼값이 사라질때 해당 폼의 상단에 사용하면
// 캐쉬의 내용을 가져옴. 완전한지는 검증되지 않음
header("Content-Type: text/html; charset=$g4[charset]");
$gmnow = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: 0"); // rfc2616 - Section 14.21
header("Last-Modified: " . $gmnow);
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: pre-check=0, post-check=0, max-age=0"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=<?=$g4[charset]?>">
<title><?=$g4[title]?></title>
<link rel="stylesheet" href="<?=$g4[path]?>/style.css" type="text/css">
</head>
<script language="javascript">
// 자바스크립트에서 사용하는 전역변수 선언
var g4_path = "<?=$g4[path]?>";
var g4_bbs = "<?=$g4[bbs]?>";
var g4_bbs_img = "<?=$g4[bbs_img]?>";
var g4_url = "<?=$g4[url]?>";
var g4_is_member = "<?=$is_member?>";
var g4_is_admin = "<?=$is_admin?>";
var g4_bo_table = "<?=$bo_table?>";
var g4_sca = "<?=$sca?>";
var g4_charset = "<?=$g4[charset]?>";
var g4_is_gecko = navigator.userAgent.toLowerCase().indexOf("gecko") != -1;
var g4_is_ie = navigator.userAgent.toLowerCase().indexOf("msie") != -1;
<? if ($is_admin) { echo "var g4_admin = '$g4[admin]';"; } ?>
</script>
<script language="javascript" src="<?=$g4[path]?>/js/common.js"></script>
<body topmargin="0" leftmargin="0" <?=$g4[body_script]?>>
<a name="g4_head"></a>
<?
// 레이어로 쪽지창 표시 시작
if($member[mb_memo_call]) {
echo " <embed src='$g4[bbs_path]/img/memo_on.swf' loop='false' width='1' height='1'></embed>";
$run = "<script language=\"JavaScript\">do_check ();msn_position();</script>";
}
else {
$run = "";
}
?>
<!-- 레이어로 쪽지창 표시 시작 -->
<script language="JavaScript1.2">
var msn_closed = true;
var msn_top = 0;
var msn_left = 0;
var msn_divheight = 165;
var msn_divwidth = 204;
function do_check () {
msn_closed = false;
}
function msn_position() {
if(!msn_closed) {
msn_top = document.body.scrollTop + document.body.clientHeight - msn_divheight;
msn_left = document.body.clientWidth - msn_divwidth;
document.all.kissme.style.top = msn_top;
document.all.kissme.style.left = msn_left;
document.all.kissme.style.display = "";
}
}
var old_ResizeHandler = window.onresize;
window.onresize = new Function("{if (old_ResizeHandler != null) old_ResizeHandler(); msn_position();}");
var old_ScrollHandler = window.onscroll;
window.onscroll = new Function("{if (old_ScrollHandler != null) old_ScrollHandler(); msn_position();}");
function hideLayer(layer) {
if(document.layers) {
layer = eval('document.layers.' + layer);
if(layer.display != 'none') layer.display = 'none';
else layer.display = '';
return;
}
layer = document.all[layer];
if(layer.style.display != 'none') {
layer.style.display='none';
}
else {
layer.style.display='';
}
msn_closed = true;
}
</script>
<div id="kissme" name="kissme" style="position:absolute; overflow: hidden; top:10; left:10; z-index: 999999; display: none; width:203; height:165; layer-background-color:rgb(255,204,255);">
<table width="200" height="160" align="center" border="0" cellspacing="0" cellpadding="0" background="<?=$g4[bbs_path]?>/img/msg_back.png">
<tr>
<td align=left height=20>
<font color="black"><?=$img_icon?> ::: 쪽지알림 :::</font>
</td>
<td align=center>
<a href='.javascript;' title='닫기' onclick='hideLayer("kissme")'><b> </b></button></a>
</td></tr>
<tr>
<td colspan=2 align=center>
<br><b><?=$member[mb_name]?></b> 님께<br><br>쪽지가 도착했습니다.<br>확인 하시겠습니까?<br><br>
<button style="border: 1px solid #93ACCF" onclick="window.open('<?=$g4[bbs_path]?>/memo.php','member_memo','width=610,height=460,status=no,toolbar=no,resizable=yes,scrollbars=yes');hideLayer('kissme');">메모열기</button> <button style="border: 1px solid #93ACCF" onclick='hideLayer("kissme")'> 창닫기 </button><br>
<br>
</td></tr>
</table>
</div>
<?=$run?>
<?
// 쪽지를 받았나?
if ($member[mb_memo_call]) {
$mb = get_member($member[mb_memo_call], "mb_nick");
sql_query(" update {$g4[member_table]} set mb_memo_call = '' where mb_id = '$member[mb_id]' ");
// alert($mb[mb_nick]."님으로부터 쪽지가 전달되었습니다.", $_SERVER[REQUEST_URI]);
}
?>
너무 감사합니다.
너무 너무 좋습니다.
그런데 알림창이 맨우측하단에 약간 가리우네요.
가운데로 올 수 있으면 좋겠는데
목소리도 짱입니다.
너무 고마워요
창 수정방법만 알려 주시면 고맙겠습니다.
오늘도 행복하게....
너무 너무 좋습니다.
그런데 알림창이 맨우측하단에 약간 가리우네요.
가운데로 올 수 있으면 좋겠는데
목소리도 짱입니다.
너무 고마워요
창 수정방법만 알려 주시면 고맙겠습니다.
오늘도 행복하게....

아래의 링크를 참조하세요.
http://avaschool.net/web/sub_data/tb.php/forum/215
http://avaschool.net/web/sub_data/tb.php/forum/215
좋은소스네요~~
좋은 팁입니다...
감사합니다....스크랩합니다...^^
감사합니다....스크랩합니다...^^

따봉!
감사감사합니다.

수고하셨습니다~
스크랩해갈게요...
유용히 쓰이겟네요^^
유용히 쓰이겟네요^^
이거 좋긴 한데.. 서버 부하를 많이 잡아먹더군요...
눈물을 머금고 삭제.. T-T
눈물을 머금고 삭제.. T-T
좋은팁 잘봤습니다.^^

좋으데요 스크렙을 해놓고..

msn