비밀글 패스워드 입력 시 팝업 사용하기 정보
비밀글 패스워드 입력 시 팝업 사용하기본문
bbs/list.php 파일의 해당부분을 수정 합니다.
107 Line 부근
while {
중략...
$i++;
$k++;
}
$i++; 바로 윗 부분에
// 자신의 글이거나 관리자라면 통과
if (($list[$i][mb_id] && $list[$i][mb_id] == $member[mb_id]) || $is_admin)
;
else
{
// 비밀글이라면
if (strstr($list[$i][wr_option], "secret"))
{
// 회원이 비밀글을 올리고 관리자가 답변글을 올렸을 경우
// 회원이 관리자가 올린 답변글을 바로 볼 수 없던 오류를 수정
$is_owner = false;
if ($list[$i][wr_reply] && $member[mb_id])
{
$sql = " select mb_id from $write_table
where wr_num = '{$list[$i][wr_num]}'
and wr_reply = ''
and wr_is_comment = '0' ";
$row = sql_fetch($sql);
if ($row[mb_id] == $member[mb_id])
$is_owner = true;
}
$ss_name = "ss_secret_{$bo_table}_{$list[$i][wr_num]}";
if (!$is_owner)
{
//$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
// 한번 읽은 게시물의 번호는 세션에 저장되어 있고 같은 게시물을 읽을 경우는 다시 패스워드를 묻지 않습니다.
// 이 게시물이 저장된 게시물이 아니면서 관리자가 아니라면
//if ("$bo_table|$write[wr_num]" != get_session("ss_secret"))
if (!get_session($ss_name)) {
// 로그인된 회원의 권한이 설정된 읽기 권한보다 작다면
if ($member[mb_level] < $board[bo_read_level])
{ } else {
$list[$i]['href'] = "javascript:popup_window(\"./password.php?w=s&bo_table=$bo_table&wr_id={$list[$i][wr_id]}{$qstr}\", \"password_popup\", \"width=700, height=500\");";
}
//goto_url("./password.php?w=s&bo_table=$bo_table&wr_id=$wr_id{$qstr}");
//$g4[bbs_path]/board.php?bo_table=$board[bo_table]&wr_id=$list[wr_id]
}
}
}
}
$i++;
$k++;
}
이렇게 수정 합니다.
bbs/password_check.php 파일을 아래와 같이 수정 합니다.
<?
include_once("./_common.php");
if ($w == "s") {
$qstr = "bo_table=$bo_table&sfl=$sfl&stx=$stx&wr_id=$wr_id&page=$page";
$wr = get_write($write_table, $wr_id);
if (sql_password($wr_password) != $wr[wr_password])
alert("패스워드가 틀립니다.");
// 세션에 아래 정보를 저장. 하위번호는 패스워드없이 보아야 하기 때문임.
//$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
$ss_name = "ss_secret_{$bo_table}_{$wr[wr_num]}";
//set_session("ss_secret", "$bo_table|$wr[wr_num]");
set_session($ss_name, TRUE);
} else
alert("w 값이 제대로 넘어오지 않았습니다.");
if($w == "s") {
echo "
<script type='text/javascript'>
opener.location.href = './board.php?$qstr';
this.name = 'opener';
this.close();
</script>
";
} else {
goto_url("./board.php?$qstr");
}
?>
bbs/password.php 파일을 아래와 같이 수정 합니다.
<?
include_once("./_common.php");
if ($w == "u")
$action = "./write.php";
else if ($w == "d")
$action = "./delete.php";
else if ($w == "x")
$action = "./delete_comment.php";
else if ($w == "s")
{
// 패스워드 창에서 로그인 하는 경우 관리자 또는 자신의 글이면 바로 글보기로 감
if ($is_admin || ($member[mb_id] == $write[mb_id] && $write[mb_id]))
goto_url("./board.php?bo_table=$bo_table&wr_id=$wr_id");
else
$action = "./password_check.php";
}
else
alert("w 값이 제대로 넘어오지 않았습니다.");
$g4[title] = "패스워드 입력";
include_once("$g4[path]/head.sub.php");
if ($w != "s") {
if ($board[bo_include_head]) { @include ($board[bo_include_head]); }
if ($board[bo_content_head]) { echo stripslashes($board[bo_content_head]); }
}
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
include_once("$member_skin_path/password.skin.php");
if ($w != "s") {
if ($board[bo_content_tail]) { echo stripslashes($board[bo_content_tail]); }
if ($board[bo_include_tail]) { @include ($board[bo_include_tail]); }
}
include_once("$g4[path]/tail.sub.php");
?>
* 패스워드 입력창 사용 기준 :
읽기권한 1 일 때 만 작동.
비회원은 리스트에서 비밀글 클릭시 팝업으로 패스워드 입력.
* 해당 팁은 게시물 수정,삭제 시에는 팝업이 아닌 기존의 방식대로 작동 합니다.
*주의사항 :
만약 리스트에 마우스 오버되었을때 javascript:popup_window( 라고만 링크가 표시 된다면
스킨 파일의 list.skin.php 파일내에
echo "<a href=\"{$list[$i][href]}\">{$list[$i][subject]}</a>";
부분의 \" 따옴표를 ' 이렇게 바꿔 주세요..
버그 있으면 댓글 달아주세요~
107 Line 부근
while {
중략...
$i++;
$k++;
}
$i++; 바로 윗 부분에
// 자신의 글이거나 관리자라면 통과
if (($list[$i][mb_id] && $list[$i][mb_id] == $member[mb_id]) || $is_admin)
;
else
{
// 비밀글이라면
if (strstr($list[$i][wr_option], "secret"))
{
// 회원이 비밀글을 올리고 관리자가 답변글을 올렸을 경우
// 회원이 관리자가 올린 답변글을 바로 볼 수 없던 오류를 수정
$is_owner = false;
if ($list[$i][wr_reply] && $member[mb_id])
{
$sql = " select mb_id from $write_table
where wr_num = '{$list[$i][wr_num]}'
and wr_reply = ''
and wr_is_comment = '0' ";
$row = sql_fetch($sql);
if ($row[mb_id] == $member[mb_id])
$is_owner = true;
}
$ss_name = "ss_secret_{$bo_table}_{$list[$i][wr_num]}";
if (!$is_owner)
{
//$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
// 한번 읽은 게시물의 번호는 세션에 저장되어 있고 같은 게시물을 읽을 경우는 다시 패스워드를 묻지 않습니다.
// 이 게시물이 저장된 게시물이 아니면서 관리자가 아니라면
//if ("$bo_table|$write[wr_num]" != get_session("ss_secret"))
if (!get_session($ss_name)) {
// 로그인된 회원의 권한이 설정된 읽기 권한보다 작다면
if ($member[mb_level] < $board[bo_read_level])
{ } else {
$list[$i]['href'] = "javascript:popup_window(\"./password.php?w=s&bo_table=$bo_table&wr_id={$list[$i][wr_id]}{$qstr}\", \"password_popup\", \"width=700, height=500\");";
}
//goto_url("./password.php?w=s&bo_table=$bo_table&wr_id=$wr_id{$qstr}");
//$g4[bbs_path]/board.php?bo_table=$board[bo_table]&wr_id=$list[wr_id]
}
}
}
}
$i++;
$k++;
}
이렇게 수정 합니다.
bbs/password_check.php 파일을 아래와 같이 수정 합니다.
<?
include_once("./_common.php");
if ($w == "s") {
$qstr = "bo_table=$bo_table&sfl=$sfl&stx=$stx&wr_id=$wr_id&page=$page";
$wr = get_write($write_table, $wr_id);
if (sql_password($wr_password) != $wr[wr_password])
alert("패스워드가 틀립니다.");
// 세션에 아래 정보를 저장. 하위번호는 패스워드없이 보아야 하기 때문임.
//$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
$ss_name = "ss_secret_{$bo_table}_{$wr[wr_num]}";
//set_session("ss_secret", "$bo_table|$wr[wr_num]");
set_session($ss_name, TRUE);
} else
alert("w 값이 제대로 넘어오지 않았습니다.");
if($w == "s") {
echo "
<script type='text/javascript'>
opener.location.href = './board.php?$qstr';
this.name = 'opener';
this.close();
</script>
";
} else {
goto_url("./board.php?$qstr");
}
?>
bbs/password.php 파일을 아래와 같이 수정 합니다.
<?
include_once("./_common.php");
if ($w == "u")
$action = "./write.php";
else if ($w == "d")
$action = "./delete.php";
else if ($w == "x")
$action = "./delete_comment.php";
else if ($w == "s")
{
// 패스워드 창에서 로그인 하는 경우 관리자 또는 자신의 글이면 바로 글보기로 감
if ($is_admin || ($member[mb_id] == $write[mb_id] && $write[mb_id]))
goto_url("./board.php?bo_table=$bo_table&wr_id=$wr_id");
else
$action = "./password_check.php";
}
else
alert("w 값이 제대로 넘어오지 않았습니다.");
$g4[title] = "패스워드 입력";
include_once("$g4[path]/head.sub.php");
if ($w != "s") {
if ($board[bo_include_head]) { @include ($board[bo_include_head]); }
if ($board[bo_content_head]) { echo stripslashes($board[bo_content_head]); }
}
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
include_once("$member_skin_path/password.skin.php");
if ($w != "s") {
if ($board[bo_content_tail]) { echo stripslashes($board[bo_content_tail]); }
if ($board[bo_include_tail]) { @include ($board[bo_include_tail]); }
}
include_once("$g4[path]/tail.sub.php");
?>
* 패스워드 입력창 사용 기준 :
읽기권한 1 일 때 만 작동.
비회원은 리스트에서 비밀글 클릭시 팝업으로 패스워드 입력.
* 해당 팁은 게시물 수정,삭제 시에는 팝업이 아닌 기존의 방식대로 작동 합니다.
*주의사항 :
만약 리스트에 마우스 오버되었을때 javascript:popup_window( 라고만 링크가 표시 된다면
스킨 파일의 list.skin.php 파일내에
echo "<a href=\"{$list[$i][href]}\">{$list[$i][subject]}</a>";
부분의 \" 따옴표를 ' 이렇게 바꿔 주세요..
버그 있으면 댓글 달아주세요~
추천
3
3
댓글 11개
햐, 바로 올려 주셨네요...테스트 고고싱~
질문:$qstr ← 요건 무슨값인가요?
질문:$qstr ← 요건 무슨값인가요?
패스워드 창만 올라오는게 아니고 페이지(메뉴,서브,꼬리 다포함)가 창속에 다올라옵니다.
이 문제 때문에 질답에 글을 올렸었는데, 혹시 저만 그런건지...ㅜㅜ
아니면 June44님 코 끼신것임...ㅋㅋ
이 문제 때문에 질답에 글을 올렸었는데, 혹시 저만 그런건지...ㅜㅜ
아니면 June44님 코 끼신것임...ㅋㅋ
헉 죄송합니다... 파일 하나가 누락됐네요..^^;
글 아랫 부분에 password.php 파일도 수정 해 주세요..^^;
글 아랫 부분에 password.php 파일도 수정 해 주세요..^^;
qstr은 검색, 페이지 이동등 부가적인 URL 값입니다..
대단히 잘 됩니다.
너무너무 감사합니다. ^^
너무너무 감사합니다. ^^
오..
비밀글 패스워드 팝업
잘되네요...감사합니다.
감사합니당
비밀번호 입력
이거 그누보드5도 되나요?