헐랭이님 봐주세요~~~ 정보
헐랭이님 봐주세요~~~본문
어제 도움으로 그간의 고통을 잊고 즐거운 마음으로 잠자리에 들었습니다.. 고맙습니다.^^
한가지 더 도움을 청하려고 질문 남깁니다.. 수고스럽더라도 함 봐주세요~~~~^______^
우선,,구현하려는 것은 포인트가 설정된 글을 읽으려고 할때 확인창을 보여주려고 합니다.
우선,,, confirm_msg 함수를 ./lib/common.lib.php 에 추가했구요...(아래처럼)
--------------------------------------------------------------------------------
// 경고메세지를 confirm 경고창으로
function confirm_msg($msg='', $url='')
{
global $g4;
function confirm_msg($msg='', $url='')
{
global $g4;
if (!$msg) $msg = '올바른 방법으로 이용해 주십시오.';
//header("Content-Type: text/html; charset=$g4[charset]");
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=$g4[charset]\">";
echo "<script language='javascript'>if(confirm('$msg')) {";
echo "location.replace('$url'); } else { history.go(-1); }";
if (!$url)
echo "history.go(-1);";
echo "</script>";
exit;
}
---------------------------------------------------------------------------------
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=$g4[charset]\">";
echo "<script language='javascript'>if(confirm('$msg')) {";
echo "location.replace('$url'); } else { history.go(-1); }";
if (!$url)
echo "history.go(-1);";
echo "</script>";
exit;
}
---------------------------------------------------------------------------------
다음은,,, ./bbs/board.php 아래부분을 수정했습니다... (어제 헐랭이님이 올려주신 내용에 추가했죠..)
---------------------------------------------------------------------------------------------
이전생략
if ($member[mb_point] + $board[bo_read_point] < 0)
confirm_msg("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 이용(".number_format($board[bo_read_point]).") 불가합니다.\\n\\n포인트를 충전 후 다시 이용 해 주십시오.", "충전할페이지 url");
confirm_msg("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 이용(".number_format($board[bo_read_point]).") 불가합니다.\\n\\n포인트를 충전 후 다시 이용 해 주십시오.", "충전할페이지 url");
else {
if ($board[bo_read_point]==0) //포인트가 설정되지 않은 글은 경고창 안띄움
insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
else{
confirm_msg("확인을 누르시면 (".number_format($board[bo_read_point]).")포인트가 차감됩니다.", "문제의 url");
insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
}
}
이하생략
----------------------------------------------------------------------------------------------------------
이렇게 수정했는데... 문제는 해당글을 클릭했을때 경고창이 뜨고 이동해야할 문제의 url 입니다. ㅠ..ㅠ
이것저것... 되는데로 넣어봤는데... 저의 한계입니다. 정신이 가물가물... 담배만 피고 있습니다.
도와주세요~~~~ 부탁드립니다... ^^
댓글 전체
제가 포인트가 조금밖에 없습니다.. 미안해요....
그냥 alert를 사용해서 아래와 같이 사용하시면 됩니다.
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 이용(".number_format($board[bo_read_point]).") 불가합니다.\\n\\n포인트를 충전 후 다시 이용 해 주십시오.", "$g4[bbs_path]/board.php?bo_table=$bo_table");
$g4[bbs_path]/board.php?bo_table=$bo_table 이부분 대신
해당 url을 넣으시면 됩니다.다른부분도 마찬가지
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 이용(".number_format($board[bo_read_point]).") 불가합니다.\\n\\n포인트를 충전 후 다시 이용 해 주십시오.", "$g4[bbs_path]/board.php?bo_table=$bo_table");
$g4[bbs_path]/board.php?bo_table=$bo_table 이부분 대신
해당 url을 넣으시면 됩니다.다른부분도 마찬가지
컴핌창과 알트창에서 경로 지정하는것은 가능 하나 스크립트로 제어하여
해당 게시글을 보기/ 안보기의 제어는 한계가 있는듯 보입니다.
여러가지 방법을 동원해 봤지만 실패하여 허접 하지만 만들어 본겁니다.
아래의 코드를 참고하여 응용 하십시요. 테스트결과 작동은 잘됩니다.ㅋㅋ
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name)) {
sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");
// 자신의 글이면 통과
if ($write[mb_id] && $write[mb_id] == $member[mb_id])
;
else {
// 회원이상 글읽기가 가능하다면
if ($board[bo_read_level] > 1)
{
//헐랭이추가부분
$sql = " select count(*) as cnt from $g4[point_table]
where mb_id = '$member[mb_id]'
and po_rel_table = '$bo_table'
and po_rel_id = '$wr_id'
and po_rel_action = '읽기' ";
$row = sql_fetch($sql);
// 포인트 테이블에서 현재글의 포인트 차감 부분이 있나 검사후 없을때만 실행함
if ($row[cnt]){
}
else
{
if ($member[mb_point] + $board[bo_read_point] < 0) {
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 이용(".number_format($board[bo_read_point]).") 불가합니다.\\n\\n포인트를 충전 후 다시 이용 해 주십시오.");
} else {
if ($board[bo_read_point]==0) {//포인트가 설정되지 않은 글은 경고창 안띄움
// insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
}else{
if (!$by) {
echo <<<HEREDOC
<script language='javascript'>
function byview(){
location.href='board.php?bo_table={$bo_table}&wr_id={$wr_id}{$qstr}&by=ok';
}
function back(){
history.back();
}
</script>
<p> </p><p> </p><p> </p>
<table align="center" border="1" width="600" height="100">
<tr>
<td height="30">
<p> 안내: 이글을 열람하면 회원님의 포인트에서 ({$board[bo_read_point]}) 를(을) 차감 합니다.</p>
</td>
</tr>
</table>
<table align="center" border="1" width="600" height="100">
<tr>
<td height="50">
<p> <input type=button value="포인트 아깝다ㅠㅠ 안볼래" onclick="javascript:back()"></p>
</td>
<td height="50">
<p> <input type=button value="포인트가 대수냐ㅎㅎ보러갈께" onclick="javascript:byview()"></p>
</td>
</tr>
</table>
<p> </p>
HEREDOC;
exit;
}
else
{
insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
}
}
}
}
}
set_session($ss_name, TRUE);
}
}
$g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));
}
else
{
if ($member[mb_level] < $board[bo_list_level])
{
if ($member[mb_id])
alert("목록을 볼 권한이 없습니다.", $g4[path]);
else
alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}
if (!$page) $page = 1;
$g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}
해당 게시글을 보기/ 안보기의 제어는 한계가 있는듯 보입니다.
여러가지 방법을 동원해 봤지만 실패하여 허접 하지만 만들어 본겁니다.
아래의 코드를 참고하여 응용 하십시요. 테스트결과 작동은 잘됩니다.ㅋㅋ
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name)) {
sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");
// 자신의 글이면 통과
if ($write[mb_id] && $write[mb_id] == $member[mb_id])
;
else {
// 회원이상 글읽기가 가능하다면
if ($board[bo_read_level] > 1)
{
//헐랭이추가부분
$sql = " select count(*) as cnt from $g4[point_table]
where mb_id = '$member[mb_id]'
and po_rel_table = '$bo_table'
and po_rel_id = '$wr_id'
and po_rel_action = '읽기' ";
$row = sql_fetch($sql);
// 포인트 테이블에서 현재글의 포인트 차감 부분이 있나 검사후 없을때만 실행함
if ($row[cnt]){
}
else
{
if ($member[mb_point] + $board[bo_read_point] < 0) {
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 이용(".number_format($board[bo_read_point]).") 불가합니다.\\n\\n포인트를 충전 후 다시 이용 해 주십시오.");
} else {
if ($board[bo_read_point]==0) {//포인트가 설정되지 않은 글은 경고창 안띄움
// insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
}else{
if (!$by) {
echo <<<HEREDOC
<script language='javascript'>
function byview(){
location.href='board.php?bo_table={$bo_table}&wr_id={$wr_id}{$qstr}&by=ok';
}
function back(){
history.back();
}
</script>
<p> </p><p> </p><p> </p>
<table align="center" border="1" width="600" height="100">
<tr>
<td height="30">
<p> 안내: 이글을 열람하면 회원님의 포인트에서 ({$board[bo_read_point]}) 를(을) 차감 합니다.</p>
</td>
</tr>
</table>
<table align="center" border="1" width="600" height="100">
<tr>
<td height="50">
<p> <input type=button value="포인트 아깝다ㅠㅠ 안볼래" onclick="javascript:back()"></p>
</td>
<td height="50">
<p> <input type=button value="포인트가 대수냐ㅎㅎ보러갈께" onclick="javascript:byview()"></p>
</td>
</tr>
</table>
<p> </p>
HEREDOC;
exit;
}
else
{
insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
}
}
}
}
}
set_session($ss_name, TRUE);
}
}
$g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));
}
else
{
if ($member[mb_level] < $board[bo_list_level])
{
if ($member[mb_id])
alert("목록을 볼 권한이 없습니다.", $g4[path]);
else
alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}
if (!$page) $page = 1;
$g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}
답변 달아주신 헐랭이님을 포함해서 모든분께 감사드립니다.. ^^
헐랭이님이 주신 코드로 실행했는데....아래와 같은오류가 나옵니다.
--------------------------------------------------------------
Parse error: parse error, unexpected T_SL, expecting ',' or ';' in /home/hosting_users/courtauction/www/bbs/board.php on line 156
--------------------------------------------------------------
해당부분은 아래입니다..
---------------------
echo <<<HEREDOC
----------------------
죄송한데요... 확인부탁드립니다... 이런건 처음보는데... 찾아서 공부해야겠습니다.. ^^
헐랭이님이 주신 코드로 실행했는데....아래와 같은오류가 나옵니다.
--------------------------------------------------------------
Parse error: parse error, unexpected T_SL, expecting ',' or ';' in /home/hosting_users/courtauction/www/bbs/board.php on line 156
--------------------------------------------------------------
해당부분은 아래입니다..
---------------------
echo <<<HEREDOC
----------------------
죄송한데요... 확인부탁드립니다... 이런건 처음보는데... 찾아서 공부해야겠습니다.. ^^
이상하군요.ㅠ.ㅠ
위에있는 코드를 적용하여 테스트한걸 그대로 긁어서 올렸습니다.
http://221.161.154.83/admins/bbs/board.php?bo_table=sub5_1&page=5
테스트 아이디, 비번 : test
위에있는 코드를 적용하여 테스트한걸 그대로 긁어서 올렸습니다.
http://221.161.154.83/admins/bbs/board.php?bo_table=sub5_1&page=5
테스트 아이디, 비번 : test
그렇군요.... 다시 차근차근 해볼께요... ^^ 고맙습니다...
아... 왜 안되는 걸까요? ㅠ..ㅠ 그만 자야겠습니다...
에러나는 이유를 모르겠군요. 제가 테스트 하는곳은 잘되는데요.
아래의 코드로 교체 하여 보세요. 그리고 코멘트를 복사시엔 코드가 중복이 되는지 확인해야 합니다.
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name)) {
sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");
// 자신의 글이면 통과
if ($write[mb_id] && $write[mb_id] == $member[mb_id])
;
else {
// 회원이상 글읽기가 가능하다면
if ($board[bo_read_level] > 1)
{
//헐랭이추가부분
$sql = " select count(*) as cnt from $g4[point_table]
where mb_id = '$member[mb_id]'
and po_rel_table = '$bo_table'
and po_rel_id = '$wr_id'
and po_rel_action = '읽기' ";
$row = sql_fetch($sql);
// 포인트 테이블에서 현재글의 포인트 차감 부분이 있나 검사후 없을때만 실행함
if ($row[cnt]){
}
else
{
if ($member[mb_point] + $board[bo_read_point] < 0) {
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 이용(".number_format($board[bo_read_point]).") 불가합니다.\\n\\n포인트를 충전 후 다시 이용 해 주십시오.");
} else {
if ($board[bo_read_point]==0) {//포인트가 설정되지 않은 글은 경고창 안띄움
// insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
}else{
if (!$by) {
//echo <<<HEREDOC
?>
<script language='javascript'>
function byview(){
location.href='board.php?bo_table=<?=$bo_table?>&wr_id=<?=$wr_id?><?=$qstr?>&by=ok';
}
function back(){
history.back();
}
</script>
<p> </p><p> </p><p> </p>
<table align="center" border="1" width="600" height="100">
<tr>
<td height="30">
<p> 안내: 이글을 열람하면 회원님의 포인트에서 (<?=$board[bo_read_point]?>) 를(을) 차감 합니다.</p>
</td>
</tr>
</table>
<table align="center" border="1" width="600" height="100">
<tr>
<td height="50">
<p> <input type=button value="포인트 아깝다ㅠㅠ 안볼래" onclick="javascript:back()"></p>
</td>
<td height="50">
<p> <input type=button value="포인트가 대수냐ㅎㅎ보러갈께" onclick="javascript:byview()"></p>
</td>
</tr>
</table>
<p> </p>
<?
//HEREDOC;
exit;
}
else
{
insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
}
}
}
}
}
set_session($ss_name, TRUE);
}
}
$g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));
}
else
{
if ($member[mb_level] < $board[bo_list_level])
{
if ($member[mb_id])
alert("목록을 볼 권한이 없습니다.", $g4[path]);
else
alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}
if (!$page) $page = 1;
$g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}
아래의 코드로 교체 하여 보세요. 그리고 코멘트를 복사시엔 코드가 중복이 되는지 확인해야 합니다.
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name)) {
sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");
// 자신의 글이면 통과
if ($write[mb_id] && $write[mb_id] == $member[mb_id])
;
else {
// 회원이상 글읽기가 가능하다면
if ($board[bo_read_level] > 1)
{
//헐랭이추가부분
$sql = " select count(*) as cnt from $g4[point_table]
where mb_id = '$member[mb_id]'
and po_rel_table = '$bo_table'
and po_rel_id = '$wr_id'
and po_rel_action = '읽기' ";
$row = sql_fetch($sql);
// 포인트 테이블에서 현재글의 포인트 차감 부분이 있나 검사후 없을때만 실행함
if ($row[cnt]){
}
else
{
if ($member[mb_point] + $board[bo_read_point] < 0) {
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 이용(".number_format($board[bo_read_point]).") 불가합니다.\\n\\n포인트를 충전 후 다시 이용 해 주십시오.");
} else {
if ($board[bo_read_point]==0) {//포인트가 설정되지 않은 글은 경고창 안띄움
// insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
}else{
if (!$by) {
//echo <<<HEREDOC
?>
<script language='javascript'>
function byview(){
location.href='board.php?bo_table=<?=$bo_table?>&wr_id=<?=$wr_id?><?=$qstr?>&by=ok';
}
function back(){
history.back();
}
</script>
<p> </p><p> </p><p> </p>
<table align="center" border="1" width="600" height="100">
<tr>
<td height="30">
<p> 안내: 이글을 열람하면 회원님의 포인트에서 (<?=$board[bo_read_point]?>) 를(을) 차감 합니다.</p>
</td>
</tr>
</table>
<table align="center" border="1" width="600" height="100">
<tr>
<td height="50">
<p> <input type=button value="포인트 아깝다ㅠㅠ 안볼래" onclick="javascript:back()"></p>
</td>
<td height="50">
<p> <input type=button value="포인트가 대수냐ㅎㅎ보러갈께" onclick="javascript:byview()"></p>
</td>
</tr>
</table>
<p> </p>
<?
//HEREDOC;
exit;
}
else
{
insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
}
}
}
}
}
set_session($ss_name, TRUE);
}
}
$g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));
}
else
{
if ($member[mb_level] < $board[bo_list_level])
{
if ($member[mb_id])
alert("목록을 볼 권한이 없습니다.", $g4[path]);
else
alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}
if (!$page) $page = 1;
$g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}
늦은시각까지 신경써주신 헐랭이님 감사드립니다... ^^
새로주신 코드로 해보니... 아주 잘 되는군요.... ㅎㅎㅎ
오늘도 좋은 하루 되세요~~~~ ^^
새로주신 코드로 해보니... 아주 잘 되는군요.... ㅎㅎㅎ
오늘도 좋은 하루 되세요~~~~ ^^