Warning: Undefined array key "mobile_dir" in /home/kagla/new-sir/old/common.php on line 315
g4용 스킨 g5 변환중인데 한번 봐주세요 고수님들

g4용 스킨 g5 변환중인데 한번 봐주세요 고수님들

g4용 스킨 g5 변환중인데 한번 봐주세요 고수님들

QA

g4용 스킨 g5 변환중인데 한번 봐주세요 고수님들

답변 2

본문

해당소스는 지구인님의 최근글에 댓글뽑기 소스 소스입니다.

http://sir.kr/bbs/board.php?bo_table=g4_skin&wr_id=138402 

아래코드들의 경로등이 잘 맞았는지 한번 살펴봐주시면 감사하겠습니다.^^

성공하면 지구인님과 도와주신분 성함으로 정리후 봉헌하겠나이다 ^^

 

 

/latest.skin.php


<?		 ////★★★★여기서부터 최근글에 댓글뽑기 소스★★★★
			$this_ca_name = $list[$i]['ca_name'];
			$this_wr_parent = $list[$i]['wr_id'];
 
            if ($list[$i]['comment_cnt']) {
			
			echo "<div style='border:solid #ccc 1px;background:#eee;margin:5px;padding:5px;font-size:12px;'>";
 
			$write_table = $g5['write_prefix'].$bo_table;
			
			$sql_num = " select count(*) as num from $write_table where wr_parent = '$this_wr_parent' and wr_is_comment = 1 and wr_comment_reply = '' "; 
			$row_num = sql_fetch($sql_num);
			$comment_num = $row_num['num']; //전체댓글수
			$display_comment_num = 3; //메인에 뽑을 댓글수
			
//댓글 뽑기
			$sql_comment = " select * from $write_table where wr_parent = '$this_wr_parent' and wr_is_comment = 1 and wr_comment_reply = '' order by wr_id desc ";
			$result_comment = sql_query($sql_comment);
				for ($c=0; $row_comment=sql_fetch_array($result_comment); $c++) 
				{
				$this_day = substr($row_comment['wr_datetime'],0,10);
				if ($this_day==$g5['time_ymd']) $datetime2 = substr($row_comment['wr_datetime'],11,5);
				else $datetime2 = substr($row_comment['wr_datetime'],5,5);
 
				echo "<div style='text-align:left;line-height:1.5;'> <!---((((---->";
				echo "<span style='color:#666;font-size:12px;'><b>".$row_comment['wr_name']."</b></span> ";
				echo "<span style='color:#aaaccc;font-size:11px;'>".$datetime2."</span> ";
				echo "<span style='color:#777;font-size:12px;'>".$row_comment['wr_content']."</span>";
 
//답댓글 입력폼
//				if ($_SESSION['ss_mb_id']==$list[$i]['mb_id']) { ///원글쓴이가 본인일 경우 답글달기 버튼 보임. 적용하지 않으려면 주석처리
				if ($_SESSION['ss_mb_id']) { ///로그인 중일 경우 답글달기 버튼 보임. 적용하지 않으려면 주석처리
				$form_width = "250px"; ///댓글폼의 가로폭
?>
 
	<span id='show-re-comment-form<?=$list[$i]['wr_id']?><?=$c?>' style='margin:5px;background:navy;color:#fff;padding:2px;cursor:pointer;font-size:11px;'>답댓글</span>
	<div id='re-comment-form<?=$list[$i]['wr_id']?><?=$c?>' style='display:none;'>
	<form name="fviewcomment" method="post" action="<?=$g5['bbs_path']?>/comment_latest_update.php" onsubmit="return fviewcomment_submit(this);" autocomplete="off" style="margin:0px;">
	<input type=hidden name=w           id=w value='c'>
	<input type=hidden name=mb_id       value='<?=$member['mb_id']?>'>
	<input type=hidden name=bo_table    value='<?=$bo_table?>'>
	<input type=hidden name=wr_id       value='<?=$this_wr_parent?>'>
	<input type=hidden name=wr_comment  value='<?=$row_comment['wr_comment']?>'>
	<input type=hidden name=wr_comment_reply  value='A'>
	<input type=hidden name=comment_id  id='comment_id' value=''>
	<input type=hidden name=sca         value='<?=$this_ca_name?>'>
	<input type=hidden name=set        value='goto_main'> 
	<!---댓글을 단 후 메인으로 가고자 하면 goto_main, 게시판으로 가고자 하면 goto_board---->
	<!---해당소스는 comment_latest_update.php 339행, 344행 참조---->
	<textarea id='wr_content' name='wr_content' rows=3 itemname='답글달기' required style='width:<?=$form_width?>;word-break:break-all;font-size:12px;' class=tx></textarea>
	<div style='margin:0;'><input type='submit' value=' 답글달기 ' accesskey='s' style='font-size:12px;'></div>
	</form>
	</div>
<?
				} ///원글쓴이가 본인이거나 혹은 로그인 중일 경우 답글달기 버튼 보임. 적용하지 않으려면 주석처리
 
 
///댓글의 답댓글 뽑기
 
$sql_comment_reply = " select * from $write_table where wr_parent = '$this_wr_parent' and wr_is_comment = 1 and wr_comment = '$row_comment[wr_comment]' and wr_comment_reply != '' order by wr_comment_reply desc ";
$result_comment_reply = sql_query($sql_comment_reply);
 
for ($d=0; $row_comment_reply=sql_fetch_array($result_comment_reply); $d++) 
{
$this_day_comment_reply = substr($row_comment_reply['wr_datetime'],0,10);
if ($this_day_comment_reply == $g5['time_ymd']) $datetime2_comment_reply = substr($row_comment_reply['wr_datetime'],11,5);
else $datetime2_comment_reply = substr($row_comment_reply['wr_datetime'],5,5);
 
echo "<div style='border:dotted #ccc 1px;margin:5px 5px 5px 15px;padding:5px;'>";
echo "<span style='color:#666;font-size:12px;'><b>".$row_comment_reply['wr_name']."</b></span> ";
echo "<span style='color:#aaaccc;font-size:11px;'>".$datetime2_comment_reply."</span> ";
echo "<span style='color:#777;font-size:12px;'>".$row_comment_reply['wr_content']."</span>";
echo "</div>";
}
 
				echo "</div> <!---))))---->";
				
				if ($c == $display_comment_num-1) break; //
				}
				
		if ($comment_num > $display_comment_num) { //전체 댓글수가 메인에 뽑을 댓글수보다 많으면 출력. 게시글로 가는 링크
		echo "<div style='margin-top:5px;text-align:center;'>";
		echo "<a href='".$g5['bbs_path']."/board.php?bo_table=".$bo_table."&sca=".urlencode($this_ca_name)."&wr_id=".$this_wr_parent."'>전체댓글보기</a>";
		echo "</div>";
		}
				
			echo "</div>";
?>
<script type="text/javascript">
$(document).ready(function(){
	<?
		$sql_comment = " select * from $write_table where wr_parent = '$this_wr_parent' and wr_is_comment = 1 and wr_comment_reply = '' order by wr_id desc ";
		$result_comment = sql_query($sql_comment);
		for ($c=0; $row=sql_fetch_array($result_comment); $c++) 
		{
	?>
	$("span#show-re-comment-form<?=$list[$i]['wr_id']?><?=$c?>").click(function(){
		$("div#re-comment-form<?=$list[$i]['wr_id']?><?=$c?>").toggle("fast");
	});
	<? } ?>
});
</script>
			<?	} ////★★★★여기까지 최근글에 댓글뽑기 소스★★★★ ?> 

 

 

/bbs/comment_latest_update.php 


<?
include_once("./_common.php");
 
// 090710
if (substr_count($wr_content, "") > 50) {
    alert("내용에 올바르지 않은 코드가 다수 포함되어 있습니다.");
    exit;
}
 
$g5[title] = $wr_subject . "코멘트입력";
 
$w = $_POST["w"];
$wr_name  = strip_tags($_POST["wr_name"]);
$wr_email = strip_tags($_POST["wr_email"]);
 
// 비회원의 경우 이름이 누락되는 경우가 있음
if (!$is_member)
{
    if (!trim($wr_name))
        alert("로그인 후 댓글을 쓸 수 있습니다.");
}
 
if ($w == "c" || $w == "cu") 
{
    if ($member[mb_level] < $board[bo_comment_level]) 
        alert("코멘트를 쓸 권한이 없습니다.");
} 
else
    alert("w 값이 제대로 넘어오지 않았습니다."); 
 
// 세션의 시간 검사
// 4.00.15 - 코멘트 수정시 연속 게시물 등록 메시지로 인한 오류 수정
if ($w == "c" && $_SESSION["ss_datetime"] >= ($g5[server_time] - $config[cf_delay_sec]) && !$is_admin) 
    alert("너무 빠른 시간내에 게시물을 연속해서 올릴 수 없습니다.");
 
set_session("ss_datetime", $g5[server_time]);
 
// 동일내용 연속 등록 불가
$sql = " select MD5(CONCAT(wr_ip, wr_subject, wr_content)) as prev_md5 from $write_table ";
if ($w == "cu")
    $sql .= " where wr_id <> '$commend_id' ";
$sql .= " order by wr_id desc limit 1 ";
$row = sql_fetch($sql);
$curr_md5 = md5($_SERVER[REMOTE_ADDR].$wr_subject.$wr_content);
// 코멘트 수정의 경우에는 동일한 내용을 등록할 수 없는 오류 수정
//if ($row[prev_md5] == $curr_md5 && !$is_admin)
if ($row[prev_md5] == $curr_md5 && $w != 'cu' && !$is_admin)
    alert("동일한 내용을 연속해서 등록할 수 없습니다.");
 
$wr = get_write($write_table, $wr_id);
if (!$wr[wr_id]) 
    alert("글이 존재하지 않습니다.\\n\\n글이 삭제되었거나 이동하였을 수 있습니다."); 
 
// 자동등록방지 검사
//include_once ("./norobot_check.inc.php");
 
if (!$is_member) {
    if ($w=='' || $w=='c') {
        $key = get_session("captcha_keystring");
        session_unregister("captcha_keystring");
        if (!($key && $key == $_POST[wr_key])) {
            alert("정상적인 접근이 아닌것 같습니다.");
        }
    }
}
 
 
// "인터넷옵션 > 보안 > 사용자정의수준 > 스크립팅 > Action 스크립팅 > 사용 안 함" 일 경우의 오류 처리
// 이 옵션을 사용 안 함으로 설정할 경우 어떤 스크립트도 실행 되지 않습니다.
//if (!trim($_POST["wr_content"])) die ("내용을 입력하여 주십시오.");
 
if ($member[mb_id]) 
{
    $mb_id = $member[mb_id];
    // 4.00.13 - 실명 사용일때 코멘트에 별명으로 입력되던 오류를 수정
    $wr_name = $board[bo_use_name] ? $member[mb_name] : $member[mb_nick];
    $wr_password = $member[mb_password];
    $wr_email = $member[mb_email];
    $wr_homepage = $member[mb_homepage];
} 
else 
{
    $mb_id = "";
    $wr_password = sql_password($wr_password);
}
 
if ($w == "c") // 코멘트 입력
{
    if ($member[mb_point] + $board[bo_comment_point] < 0 && !$is_admin)
        alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 코멘트쓰기(".number_format($board[bo_comment_point]).")가 불가합니다.\\n\\n포인트를 적립하신 후 다시 코멘트를 써 주십시오.");
 
    // 코멘트 답변
    if ($comment_id) 
    {
        $sql = " select wr_id, wr_comment, wr_comment_reply from $write_table 
                  where wr_id = '$comment_id' ";
        $reply_array = sql_fetch($sql);
        if (!$reply_array[wr_id])
            alert("답변할 코멘트가 없습니다.\\n\\n답변하는 동안 코멘트가 삭제되었을 수 있습니다.");
 
        $tmp_comment = $reply_array[wr_comment];
 
        if (strlen($reply_array[wr_comment_reply]) == 5)
            alert("더 이상 답변하실 수 없습니다.\\n\\n답변은 5단계 까지만 가능합니다.");
 
        $reply_len = strlen($reply_array[wr_comment_reply]) + 1;
        if ($board[bo_reply_order]) {
            $begin_reply_char = "A";
            $end_reply_char = "Z";
            $reply_number = +1;
            $sql = " select MAX(SUBSTRING(wr_comment_reply, $reply_len, 1)) as reply 
                       from $write_table 
                      where wr_parent = '$wr_id' 
                        and wr_comment = '$tmp_comment'
                        and SUBSTRING(wr_comment_reply, $reply_len, 1) <> '' ";
        } 
        else 
        {
            $begin_reply_char = "Z";
            $end_reply_char = "A";
            $reply_number = -1;
            $sql = " select MIN(SUBSTRING(wr_comment_reply, $reply_len, 1)) as reply 
                       from $write_table 
                      where wr_parent = '$wr_id' 
                        and wr_comment = '$tmp_comment'
                       and SUBSTRING(wr_comment_reply, $reply_len, 1) <> '' ";
        }
        if ($reply_array[wr_comment_reply]) 
            $sql .= " and wr_comment_reply like '$reply_array[wr_comment_reply]%' ";
        $row = sql_fetch($sql);
 
        if (!$row[reply])
            $reply_char = $begin_reply_char;
        else if ($row[reply] == $end_reply_char) // A~Z은 26 입니다.
            alert("더 이상 답변하실 수 없습니다.\\n\\n답변은 26개 까지만 가능합니다.");
        else
            $reply_char = chr(ord($row[reply]) + $reply_number);
 
        $tmp_comment_reply = $reply_array[wr_comment_reply] . $reply_char;
    }
    else 
    {
        $sql = " select max(wr_comment) as max_comment from $write_table 
                  where wr_parent = '$wr_id' and wr_is_comment = 1 ";
        $row = sql_fetch($sql);
        //$row[max_comment] -= 1;
        $row[max_comment] += 1;
        $tmp_comment = $row[max_comment];
        $tmp_comment_reply = "";
    }
 
    $sql = " insert into $write_table
                set ca_name = '$wr[ca_name]',
                    wr_option = '$wr_secret',
                    wr_num = '$wr[wr_num]',
                    wr_reply = '',
                    wr_parent = '$wr_id',
                    wr_is_comment = '1',
                    wr_comment = '$wr_comment',
                    wr_comment_reply = '$wr_comment_reply',
                    wr_subject = '$wr_subject',
                    wr_content = '$wr_content',
                    mb_id = '$mb_id',
                    wr_password = '$wr_password',
                    wr_name = '$wr_name',
                    wr_email = '$wr_email',
                    wr_homepage = '$wr_homepage',
                    wr_datetime = '$g5[time_ymdhis]',
                    wr_last = '',
                    wr_ip = '$_SERVER[REMOTE_ADDR]',
                    wr_1 = '$wr_1',
                    wr_2 = '$wr_2',
                    wr_3 = '$wr_3',
                    wr_4 = '$wr_4',
                    wr_5 = '$wr_5',
                    wr_6 = '$wr_6',
                    wr_7 = '$wr_7',
                    wr_8 = '$wr_8',
                    wr_9 = '$wr_9',
                    wr_10 = '$wr_10' ";
    sql_query($sql);
 
    $comment_id = mysql_insert_id();
 
    // 원글에 코멘트수 증가 & 마지막 시간 반영
    sql_query(" update $write_table set wr_comment = wr_comment + 1, wr_last = '$g5[time_ymdhis]' where wr_id = '$wr_id' ");
 
    // 새글 INSERT
    //sql_query(" insert into $g5[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime ) values ( '$bo_table', '$comment_id', '$wr_id', '$g5[time_ymdhis]' ) ");
    sql_query(" insert into $g5[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$bo_table', '$comment_id', '$wr_id', '$g5[time_ymdhis]', '$member[mb_id]' ) ");
 
    // 코멘트 1 증가
    sql_query(" update $g5[board_table] set bo_count_comment = bo_count_comment + 1 where bo_table = '$bo_table' ");
 
    // 포인트 부여
    insert_point($member[mb_id], $board[bo_comment_point], "$board[bo_subject] {$wr_id}-{$comment_id} 코멘트쓰기", $bo_table, $comment_id, '코멘트');
 
    // 메일발송 사용
    if ($config[cf_email_use] && $board[bo_use_email])
    {
        // 관리자의 정보를 얻고
        $super_admin = get_admin("super");
        $group_admin = get_admin("group");
        $board_admin = get_admin("board");
 
        $wr_subject = get_text(stripslashes($wr[wr_subject]));
        $wr_content = nl2br(get_text(stripslashes("----- 원글 -----\n\n$wr[wr_subject]\n\n\n----- 코멘트 -----\n\n$wr_content")));
 
        $warr = array( ""=>"입력", "u"=>"수정", "r"=>"답변", "c"=>"코멘트", "cu"=>"코멘트 수정" );
        $str = $warr[$w];
 
        $subject = "'{$board[bo_subject]}' 게시판에 {$str}글이 올라왔습니다.";
        // 4.00.15 - 메일로 보내는 코멘트의 바로가기 링크 수정
        $link_url = "$g5[url]/$g5[bbs]/board.php?bo_table=$bo_table&wr_id=$wr_id&$qstr#c_{$comment_id}";
 
        include_once("$g5[path]/lib/mailer.lib.php");
 
        ob_start();
        include_once ("./write_update_mail.php");
        $content = ob_get_contents();
        ob_end_clean();
 
        // 게시판 관리자에게 보내는 메일
        if ($config[cf_email_wr_board_admin])
            mailer($wr_name, $wr_email, $board_admin[mb_email], $subject, $content, 1);
 
        // 그룹 관리자에게 보내는 메일
        if ($group_admin[mb_email] != $board_admin[mb_email])
        {
            if ($config[cf_email_wr_group_admin])
                mailer($wr_name, $wr_email, $group_admin[mb_email], $subject, $content, 1);
        }
        
        // 최고관리자에게 보내는 메일
        // 게시판관리자가 존재할 경우 최고관리자에게 메일이 두번씩 발송되는 문제 해결
        if ($super_admin[mb_email] != $board_admin[mb_email] && $super_admin[mb_email] != $group_admin[mb_email])
        {
            if ($config[cf_email_wr_super_admin])
                mailer($wr_name, $wr_email, $super_admin[mb_email], $subject, $content, 1);
        }
 
        // 답변 메일받기 (원게시자에게 보내는 메일)
        //if ($wr[wr_recv_email] && $wr[wr_email] && $wr[wr_email] != $admin[mb_email]) 
        if (strstr($wr[wr_option], 'mail') && $wr[wr_email] && $wr[wr_email] != $member[mb_email]) 
        {
            if ($config[cf_email_wr_write])
                mailer($wr_name, $wr_email, $wr[wr_email], $subject, $content, 1);
 
            // 코멘트 쓴 모든이에게 메일 발송
            if ($config[cf_email_wr_comment_all])
            {
                $sql = " select distinct wr_email from $write_table
                          where wr_email not in ( '$wr[wr_email]', '$member[mb_email]', '' )
                            and wr_parent = '$wr_id' ";
                $result = sql_query($sql);
                while ($row=sql_fetch_array($result))
                    mailer($wr_name, $wr_email, $row[wr_email], $subject, $content, 1);
            }
        }
    }
} 
else if ($w == "cu") // 코멘트 수정
{ 
    $sql = " select mb_id, wr_comment, wr_comment_reply from $write_table 
              where wr_id = '$comment_id' ";
    $comment = $reply_array = sql_fetch($sql);
    $tmp_comment = $reply_array[wr_comment];
 
    $len = strlen($reply_array[wr_comment_reply]);
    if ($len < 0) $len = 0; 
    $comment_reply = substr($reply_array[wr_comment_reply], 0, $len);
    //print_r2($GLOBALS); exit;
 
    if ($is_admin == "super") // 최고관리자 통과 
        ; 
    else if ($is_admin == "group") { // 그룹관리자 
        $mb = get_member($comment[mb_id]); 
        if ($member[mb_id] == $group[gr_admin]) { // 자신이 관리하는 그룹인가? 
            if ($member[mb_level] >= $mb[mb_level]) // 자신의 레벨이 크거나 같다면 통과 
                ; 
            else 
                alert("그룹관리자의 권한보다 높은 회원의 코멘트이므로 수정할 수 없습니다."); 
        } else 
            alert("자신이 관리하는 그룹의 게시판이 아니므로 코멘트를 수정할 수 없습니다."); 
    } else if ($is_admin == "board") { // 게시판관리자이면 
        $mb = get_member($comment[mb_id]); 
        if ($member[mb_id] == $board[bo_admin]) { // 자신이 관리하는 게시판인가? 
            if ($member[mb_level] >= $mb[mb_level]) // 자신의 레벨이 크거나 같다면 통과 
                ; 
            else 
                alert("게시판관리자의 권한보다 높은 회원의 코멘트이므로 수정할 수 없습니다."); 
        } else 
            alert("자신이 관리하는 게시판이 아니므로 코멘트를 수정할 수 없습니다."); 
    } else if ($member[mb_id]) { 
        if ($member[mb_id] != $comment[mb_id]) 
            alert("자신의 글이 아니므로 수정할 수 없습니다."); 
    } 
 
    $sql = " select count(*) as cnt from $write_table
              where wr_comment_reply like '$comment_reply%'
                and wr_id <> '$comment_id'
                and wr_parent = '$wr_id'
                and wr_comment = '$tmp_comment' 
                and wr_is_comment = 1 ";
    $row = sql_fetch($sql);
    if ($row[cnt] && !$is_admin)
        alert("이 코멘트와 관련된 답변코멘트가 존재하므로 수정 할 수 없습니다.");
 
    $sql_ip = "";
    if (!$is_admin)
        $sql_ip = " , wr_ip = '$_SERVER[REMOTE_ADDR]' ";
 
    $sql_secret = "";
    if ($wr_secret)
        $sql_secret = " , wr_option = '$wr_secret' ";
 
    $sql = " update $write_table
                set wr_subject = '$wr_subject',
                    wr_content = '$wr_content',
                    wr_1 = '$wr_1',
                    wr_2 = '$wr_2',
                    wr_3 = '$wr_3',
                    wr_4 = '$wr_4',
                    wr_5 = '$wr_5',
                    wr_6 = '$wr_6',
                    wr_7 = '$wr_7',
                    wr_8 = '$wr_8',
                    wr_9 = '$wr_9',
                    wr_10 = '$wr_10',
                    wr_option = '$wr_option'
                    $sql_ip
                    $sql_secret
              where wr_id = '$comment_id' ";
    sql_query($sql);
}
 
?>
 
<? if ($set == 'goto_main') { ?>
<script>
parent.location.href = '<?=$g5['path']?>/index.php'; //최근댓글이 출력되는 페이지 URL
</script>
 
<? } elseif ($set == 'goto_board') { ?>
<script>
parent.location.href = '<?=$g5['bbs_path']?>/board.php?bo_table=<?=$bo_table?>&wr_id=<?=$wr['wr_parent']?>&page=<?=$page?><?=$qstr?>&cwin=<?=$cwin?>#c_<?=$comment_id?>';
</script>
<? } ?>

이 질문에 댓글 쓰기 :

답변 2

 대중 훓어봤을 때 눈에 띄는 에러 발생요소는 날짜 $g5[time~], 경로 부분이겠군요

 

각 화일 위쪽에다 추가하세요

$g5[server_time] = G5_SERVER_TIME;

$g5['time_ymd'] = G5_TIME_YMD;

$g5[time_ymdhis] = G5_TIME_YMDHIS;


$g5[url]= G5_URL;

$g5[bbs] = G5_BBS_DIR;

$g5['bbs_path'] = G5_BBS_URL;

$g5['path'] = G5_PATH;


341행 $g5['path'] --> $g5[url] 로 변경

 

어느정도 변환을 하신거 같은데.....어디서 문제인지요? 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,406
© SIRSOFT
현재 페이지 제일 처음으로