오늘본 상품 소스 -> "올바른 방법으로 수정하여 주십시오" 오류 문의 정보
오늘본 상품 소스 -> "올바른 방법으로 수정하여 주십시오" 오류 문의
본문
오늘본 상품 소스만 사용하면, 게시판 글수정시
"올바른 방법으로 수정하여 주십시오"라는 경고창이 뜹니다.
뭔가 서로 공유되는 내용이 있어서 그러는것 같은데,
오늘본 상품에서 게시물을 불러도, 오류가 안뜨려면
어떻게해야 되나요?
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);
을 지우면, 오늘본상품이 1개일때는 경고오류가 없는데요.
2개이상일때부터는 다시 경고오류가 발생합니다.
왜 2개부터 다시 경고오류가 발생할까요?ㅜ
도움 부탁 드립니다.
------------------------------
오늘본 상품보기 소스
<?php
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);
$tv_tbl = "oneroom";// 지정된 제품 테이블일때만 세션생성
if ($bo_table == $tv_tbl)
{
$saved = false;
$tv_idx = (int)get_session("ss_tv_idx");
if ($tv_idx > 0) {
for ($i=1; $i<=$tv_idx; $i++)
{
if (get_session("ss_tv[$i]") == $bo_table."|".$wr_id)
{
$saved = true;
break;
}
}
}
if (!$saved && $bo_table && $wr_id)
{
$tv_idx++;
set_session("ss_tv_idx", $tv_idx);
set_session("ss_tv[$tv_idx]", $bo_table."|".$wr_id);
}
}
//print_r2($_SESSION);
$tv_idx = get_session("ss_tv_idx");
$tv_div[top] = 0;
$tv_div[img_length] = 5; // 보여줄 이미지갯수
?>
<style type="text/css">
#divTodayHidden { position:relative; top:<?=$tv_div[top]?>;display:none; }
#divToday .top { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview01.gif) no-repeat; width:91px; height:31px; }
#divToday #todayviewcount { position:absolute; top:9px; right:10px; color:#555; }
#divToday #topBtn { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview02.gif) no-repeat; width:90px; height:12px; cursor:pointer; }
#divToday #botBtn { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview05.gif) no-repeat; width:90px; height:10px; cursor:pointer; }
#divToday #pList { margin:0 auto; padding:0; text-align:center; background: url(<?=$g4[shop_path]?>/img/todayview03.gif) repeat-y; width:90px; height:auto; }
#divToday #noList { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview04.gif) no-repeat; width:90px; height:21px; }
#divToday #hidBtn { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview06.gif) no-repeat; width:90px; height:23px; cursor:pointer; }
</style>
<div id='divTodayHidden'><a href='javascript:todayview_visible();' title="오늘본 제품 보기">
<img src='<?=$g4[shop_path]?>/img/todayview.gif' border=0></a>
</div>
<div id='divToday' style="position:relative; top:0; margin:0 auto; width:auto; height:auto;">
<div class="top">
<div id='todayviewcount'></div>
</div>
<?
if ($tv_idx)
{
// 상단 버튼
if ($tv_idx > $tv_div[img_length])
{
echo "<div id='topBtn' onclick=\"javascript:todayview_up();\" title=\"다음제품\"></div>\n";
}
// 제품 이미지 출력
echo "<div id='pList'>\n";
for ($i=1; $i<=$tv_div[img_length]; $i++)
{
echo " <div id='todayview_{$i}'></div>\n";
}
echo " </div>\n";
// 하단 버튼
if ($tv_idx > $tv_div[img_length])
{
echo "<div id='botBtn' onclick=\"javascript:todayview_dn();\" title=\"이전제품\"></div>\n";
}
}
else
{
echo "<div id='noList'></div>\n";
}
?>
<div id='hidBtn' onclick="javascript:todayview_hidden();"></div>
</div>
<!-- 오늘 본 제품 -->
<script type="text/javascript">
var goods_link = new Array();
<?php
echo "var goods_max = ".(int)$tv_idx.";\n";
echo "var goods_length = ".(int)$tv_div[img_length].";\n";
echo "var goods_current = goods_max;\n";
echo "\n";
for ($i=1; $i<=$tv_idx; $i++)
{
$tv_it_id = get_session("ss_tv[$i]");
list($ss_board, $ss_wr_id) = explode('|', $tv_it_id);
if ($ss_board == $tv_tbl)
{
$row = sql_fetch(" select * from $g4[board_file_table] where bo_table = '$ss_board' and wr_id = '$ss_wr_id' ");
$it_name = get_text(addslashes($row['bf_file']));
$thumb = $g4[path]."/data/file/".$ss_board."/thumbs/".$it_name;
$size = getimagesize($thumb);
$tw = $size[0] /2;
$th = $size[1]/2;
$img = "<a href='".$g4[bbs_path]."/board.php?bo_table=".$ss_board."&wr_id=".$ss_wr_id."'><img src='$thumb' width='80' height='80' style='padding:1px 0; border:none;'/></a>";
echo "goods_link[$i] = \"{$img}<br/>\";\n";//<span class=small>".cut_str($it_name,10,"")."</span>
}
}
?>
var divSave = null;
function todayview_visible()
{
set_cookie('ck_tvhidden', '', 1);
document.getElementById('divToday').innerHTML = divSave;
}
function todayview_hidden()
{
divSave = document.getElementById('divToday').innerHTML;
set_cookie('ck_tvhidden', '1', 1);
document.getElementById('divToday').innerHTML = document.getElementById('divTodayHidden').innerHTML;
}
function todayview_move(current)
{
k = 0;
for (i=goods_current; i>0 ; i--)
{
k++;
if (k > goods_length)
break;
document.getElementById('todayview_'+k).innerHTML = goods_link[i];
}
}
function todayview_up()
{
if (goods_current + 1 > goods_max)
alert("오늘 본 마지막 제품입니다.");
else
todayview_move(goods_current++);
}
function todayview_dn()
{
if (goods_current - goods_length == 0)
alert("오늘 본 처음 제품입니다.");
else
todayview_move(goods_current--);
}
<?php
$k=0;
for ($i=$tv_idx; $i>0; $i--)
{
$k++;
if ($k > $tv_div[img_length])
break;
$tv_it_id = get_session("ss_tv[$i]");
list($ss_board, $ss_wr_id) = explode('|', $tv_it_id);
if ($ss_board == $tv_tbl)
{
echo "document.getElementById('todayview_{$k}').innerHTML = goods_link[$i];\n";
}
}
if ($tv_idx)
{
echo "document.getElementById('todayviewcount').innerHTML = '$tv_idx';\n";
}
?>
function CheckUIElements()
{
var yMenuFrom, yMenuTo, yButtonFrom, yButtonTo, yOffset, timeoutNextCheck;
yMenuFrom = parseInt (document.getElementById('divToday').style.top, 10);
if ( g4_is_gecko )
yMenuTo = top.pageYOffset + <?=$tv_div[top]?>;
else if ( g4_is_ie )
yMenuTo = document.body.scrollTop + parseInt('<?=$tv_div[top]?>');
timeoutNextCheck = 500;
if ( Math.abs (yButtonFrom - (yMenuTo + 152)) < 6 && yButtonTo < yButtonFrom )
{
setTimeout ("CheckUIElements()", timeoutNextCheck);
return;
}
if ( yMenuFrom != yMenuTo )
{
yOffset = Math.ceil( Math.abs( yMenuTo - yMenuFrom ) / 10 );
if ( yMenuTo < yMenuFrom )
yOffset = -yOffset;
document.getElementById('divToday').style.top = parseInt(document.getElementById('divToday').style.top) + yOffset;
timeoutNextCheck = 10;
}
setTimeout ("CheckUIElements()", timeoutNextCheck);
}
function OnLoad() {
var y;
if ( top.frames.length )
document.getElementById('divToday').style.display = '';
CheckUIElements();
return true;
}
OnLoad();
<?php
if ($_COOKIE['ck_tvhidden'])
echo "todayview_hidden();";
?>
//-->
</script>
"올바른 방법으로 수정하여 주십시오"라는 경고창이 뜹니다.
뭔가 서로 공유되는 내용이 있어서 그러는것 같은데,
오늘본 상품에서 게시물을 불러도, 오류가 안뜨려면
어떻게해야 되나요?
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);
을 지우면, 오늘본상품이 1개일때는 경고오류가 없는데요.
2개이상일때부터는 다시 경고오류가 발생합니다.
왜 2개부터 다시 경고오류가 발생할까요?ㅜ
도움 부탁 드립니다.
------------------------------
오늘본 상품보기 소스
<?php
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);
$tv_tbl = "oneroom";// 지정된 제품 테이블일때만 세션생성
if ($bo_table == $tv_tbl)
{
$saved = false;
$tv_idx = (int)get_session("ss_tv_idx");
if ($tv_idx > 0) {
for ($i=1; $i<=$tv_idx; $i++)
{
if (get_session("ss_tv[$i]") == $bo_table."|".$wr_id)
{
$saved = true;
break;
}
}
}
if (!$saved && $bo_table && $wr_id)
{
$tv_idx++;
set_session("ss_tv_idx", $tv_idx);
set_session("ss_tv[$tv_idx]", $bo_table."|".$wr_id);
}
}
//print_r2($_SESSION);
$tv_idx = get_session("ss_tv_idx");
$tv_div[top] = 0;
$tv_div[img_length] = 5; // 보여줄 이미지갯수
?>
<style type="text/css">
#divTodayHidden { position:relative; top:<?=$tv_div[top]?>;display:none; }
#divToday .top { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview01.gif) no-repeat; width:91px; height:31px; }
#divToday #todayviewcount { position:absolute; top:9px; right:10px; color:#555; }
#divToday #topBtn { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview02.gif) no-repeat; width:90px; height:12px; cursor:pointer; }
#divToday #botBtn { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview05.gif) no-repeat; width:90px; height:10px; cursor:pointer; }
#divToday #pList { margin:0 auto; padding:0; text-align:center; background: url(<?=$g4[shop_path]?>/img/todayview03.gif) repeat-y; width:90px; height:auto; }
#divToday #noList { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview04.gif) no-repeat; width:90px; height:21px; }
#divToday #hidBtn { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview06.gif) no-repeat; width:90px; height:23px; cursor:pointer; }
</style>
<div id='divTodayHidden'><a href='javascript:todayview_visible();' title="오늘본 제품 보기">
<img src='<?=$g4[shop_path]?>/img/todayview.gif' border=0></a>
</div>
<div id='divToday' style="position:relative; top:0; margin:0 auto; width:auto; height:auto;">
<div class="top">
<div id='todayviewcount'></div>
</div>
<?
if ($tv_idx)
{
// 상단 버튼
if ($tv_idx > $tv_div[img_length])
{
echo "<div id='topBtn' onclick=\"javascript:todayview_up();\" title=\"다음제품\"></div>\n";
}
// 제품 이미지 출력
echo "<div id='pList'>\n";
for ($i=1; $i<=$tv_div[img_length]; $i++)
{
echo " <div id='todayview_{$i}'></div>\n";
}
echo " </div>\n";
// 하단 버튼
if ($tv_idx > $tv_div[img_length])
{
echo "<div id='botBtn' onclick=\"javascript:todayview_dn();\" title=\"이전제품\"></div>\n";
}
}
else
{
echo "<div id='noList'></div>\n";
}
?>
<div id='hidBtn' onclick="javascript:todayview_hidden();"></div>
</div>
<!-- 오늘 본 제품 -->
<script type="text/javascript">
var goods_link = new Array();
<?php
echo "var goods_max = ".(int)$tv_idx.";\n";
echo "var goods_length = ".(int)$tv_div[img_length].";\n";
echo "var goods_current = goods_max;\n";
echo "\n";
for ($i=1; $i<=$tv_idx; $i++)
{
$tv_it_id = get_session("ss_tv[$i]");
list($ss_board, $ss_wr_id) = explode('|', $tv_it_id);
if ($ss_board == $tv_tbl)
{
$row = sql_fetch(" select * from $g4[board_file_table] where bo_table = '$ss_board' and wr_id = '$ss_wr_id' ");
$it_name = get_text(addslashes($row['bf_file']));
$thumb = $g4[path]."/data/file/".$ss_board."/thumbs/".$it_name;
$size = getimagesize($thumb);
$tw = $size[0] /2;
$th = $size[1]/2;
$img = "<a href='".$g4[bbs_path]."/board.php?bo_table=".$ss_board."&wr_id=".$ss_wr_id."'><img src='$thumb' width='80' height='80' style='padding:1px 0; border:none;'/></a>";
echo "goods_link[$i] = \"{$img}<br/>\";\n";//<span class=small>".cut_str($it_name,10,"")."</span>
}
}
?>
var divSave = null;
function todayview_visible()
{
set_cookie('ck_tvhidden', '', 1);
document.getElementById('divToday').innerHTML = divSave;
}
function todayview_hidden()
{
divSave = document.getElementById('divToday').innerHTML;
set_cookie('ck_tvhidden', '1', 1);
document.getElementById('divToday').innerHTML = document.getElementById('divTodayHidden').innerHTML;
}
function todayview_move(current)
{
k = 0;
for (i=goods_current; i>0 ; i--)
{
k++;
if (k > goods_length)
break;
document.getElementById('todayview_'+k).innerHTML = goods_link[i];
}
}
function todayview_up()
{
if (goods_current + 1 > goods_max)
alert("오늘 본 마지막 제품입니다.");
else
todayview_move(goods_current++);
}
function todayview_dn()
{
if (goods_current - goods_length == 0)
alert("오늘 본 처음 제품입니다.");
else
todayview_move(goods_current--);
}
<?php
$k=0;
for ($i=$tv_idx; $i>0; $i--)
{
$k++;
if ($k > $tv_div[img_length])
break;
$tv_it_id = get_session("ss_tv[$i]");
list($ss_board, $ss_wr_id) = explode('|', $tv_it_id);
if ($ss_board == $tv_tbl)
{
echo "document.getElementById('todayview_{$k}').innerHTML = goods_link[$i];\n";
}
}
if ($tv_idx)
{
echo "document.getElementById('todayviewcount').innerHTML = '$tv_idx';\n";
}
?>
function CheckUIElements()
{
var yMenuFrom, yMenuTo, yButtonFrom, yButtonTo, yOffset, timeoutNextCheck;
yMenuFrom = parseInt (document.getElementById('divToday').style.top, 10);
if ( g4_is_gecko )
yMenuTo = top.pageYOffset + <?=$tv_div[top]?>;
else if ( g4_is_ie )
yMenuTo = document.body.scrollTop + parseInt('<?=$tv_div[top]?>');
timeoutNextCheck = 500;
if ( Math.abs (yButtonFrom - (yMenuTo + 152)) < 6 && yButtonTo < yButtonFrom )
{
setTimeout ("CheckUIElements()", timeoutNextCheck);
return;
}
if ( yMenuFrom != yMenuTo )
{
yOffset = Math.ceil( Math.abs( yMenuTo - yMenuFrom ) / 10 );
if ( yMenuTo < yMenuFrom )
yOffset = -yOffset;
document.getElementById('divToday').style.top = parseInt(document.getElementById('divToday').style.top) + yOffset;
timeoutNextCheck = 10;
}
setTimeout ("CheckUIElements()", timeoutNextCheck);
}
function OnLoad() {
var y;
if ( top.frames.length )
document.getElementById('divToday').style.display = '';
CheckUIElements();
return true;
}
OnLoad();
<?php
if ($_COOKIE['ck_tvhidden'])
echo "todayview_hidden();";
?>
//-->
</script>
댓글 전체

이게 현재 풀 소스를 공개하신건가요 ?

http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=17247
풀소스입니다.(플록님 제공)
풀소스입니다.(플록님 제공)

이전에도 그랬듯이 확인결과 정상동작하는소스입니다만..
사용방법에 문제가 있는듯합니다.
스킨안에서 구동되거나
글수정시 발생되는 문제로 보입니다.
get_session('ss_bo_table')
get_session('ss_wr_id')
이두가지가 중첩된다고 볼수 있겠네요..
list($ss_board, $ss_wr_id) = explode('|', $tv_it_id); 등에서 임의변수로 변경 하신다면.
list($nav_board, $nav_wr_id) = explode('|', $tv_it_id);
어떨까요..
사용방법에 문제가 있는듯합니다.
스킨안에서 구동되거나
글수정시 발생되는 문제로 보입니다.
get_session('ss_bo_table')
get_session('ss_wr_id')
이두가지가 중첩된다고 볼수 있겠네요..
list($ss_board, $ss_wr_id) = explode('|', $tv_it_id); 등에서 임의변수로 변경 하신다면.
list($nav_board, $nav_wr_id) = explode('|', $tv_it_id);
어떨까요..


다시 테스트 해보니 정상 작동합니다.

m7102님 말씀하신대로 $ss_board, $ss_wr_id를
$nav_board, $nav_wr_id로 바꾸니 아주 잘 됩니다.^^
시간도 많이 늦었는데 두분 모두 정말 감사드려요.ㅜㅜ
좋은 하루 되세요.:)
$nav_board, $nav_wr_id로 바꾸니 아주 잘 됩니다.^^
시간도 많이 늦었는데 두분 모두 정말 감사드려요.ㅜㅜ
좋은 하루 되세요.:)