게시판 에서 외부 html 상단 하단 인쿠르드 시 이미지 깨짐 현상 미해결....;; > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

게시판 에서 외부 html 상단 하단 인쿠르드 시 이미지 깨짐 현상 미해결....;; 정보

게시판 에서 외부 html 상단 하단 인쿠르드 시 이미지 깨짐 현상 미해결....;;

본문

 
글 참고....
 
<?=$g4['path']?>/image/ <-----이걸 어디에서 변경 하는지 ....알고 싶어요...~
 
 
 
<?=$g4['path']?>/image/ 변경 하시라고 하셨는데...
 
모든 이미지 링크를
 
<?=$g4['path']?> <----이경로로 지정 하라는 말은 아니죠 ? 헥 -0-;;
 
구체적인 답변 기다립니다.....
 
 

댓글 전체

<?
$g4_path = "..";    // 예)".."은 gnuboard/etc/someone.html 일때.
//$g4_path = "../..";  // 예)".."은 gnuboard/etc/aaa/someone.html  이 있다면 
include_once ("$g4_path/common.php");
include_once("$g4[path]/head.sub.php");
include_once("$g4[path]/head.php");
?>
위 부분을 그 html 상단에 넣어놓고...
<img src='<?=$g4['path']?>/image/aaa.gif' border='0'>
잘 이해가 안갑니다

<img src='<?=$g4['path']?>/image/aaa.gif' border='0'>  이런식처럼 모든 이미지를 바꾸어야 하나요 ?

위에 적어 주신 내용은 전부이해가 가는데요 ^^;;

새롭게 질문 상세 하게 올렸습니다........ 번거롭지만 ......ㅠㅠ 다시 답변 좀 해주세요...
<?=$g4['path']?>  이 자체가 상대경로 입니다.
경로없이 이미지를 뿌린다는건 들어보지 못했습니다.

$sss="<img src='$g4[path]/image";
echo"$sss/aaa.gif' border='0'>"; 방법으로 줄일 수는 있어도..


main 디렉토리 아래에
아무 디렉토리나 만드시고
aaa.php 로 저장후
http://yourdomain.co.kr/main/aaadir/aaa.php 로 실행을 시켜보시라는 말씀밖에..
그럼..
저는 이만... ^^;


<?
$g4_path = ".."; //수정 예)".."는 gnuboard/etc/someone.php 일때.
include_once ("$g4_path/common.php");
include_once("$g4[path]/head.sub.php");
include_once("$g4[path]/head.php");
?>
<table><tr><td width='742'>
<?
$sub_menu = "300100";
include_once("$g4[admin_path]/_common.php");

auth_check($auth[$sub_menu], "r");

$sql_common = " from $g4[board_table] a ";
$sql_search = " where (1) ";

if ($is_admin != "super")
{
    $sql_common .= " , $g4[group_table] b ";
    $sql_search .= " and (a.gr_id = b.gr_id and b.gr_admin = '$member[mb_id]') ";
}

if ($stx) {
    $sql_search .= " and ( ";
    switch ($sfl) {
        case "bo_table" :
            $sql_search .= " ($sfl like '$stx%') ";
            break;
        case "a.gr_id" :
            $sql_search .= " ($sfl = '$stx') ";
            break;
        default :
            $sql_search .= " ($sfl like '%$stx%') ";
            break;
    }
    $sql_search .= " ) ";
}

if (!$sst) {
    $sst  = "a.gr_id, a.bo_table";
    $sod = "asc";
}
$sql_order = " order by $sst $sod ";

$sql = " select count(*) as cnt
        $sql_common
        $sql_search
        $sql_order ";
$row = sql_fetch($sql);
$total_count = $row[cnt];

$rows = $config[cf_page_rows];
$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if ($page == "") { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함

$sql = " select *
          $sql_common
          $sql_search
          $sql_order
          limit $from_record, $rows ";
$result = sql_query($sql);

$listall = "<a href='$_SERVER[PHP_SELF]'>처음</a>";

$g4[title] = "게시판관리";
include_once("$g4[admin_path]/admin.head.php");

$colspan = 13;
?>

<script language="JavaScript">
var list_update_php = 'board_list_update.php';
var list_delete_php = 'board_list_delete.php';
</script>

<table width=100% cellpadding=3 cellspacing=1>
<form name=fsearch method=get>
<tr>
    <td width=50% align=left><?=$listall?> (게시판수 : <?=number_format($total_count)?>개)</td>
    <td width=50% align=right>
        <select name=sfl>
            <option value='bo_table'>TABLE</option>
            <option value='bo_subject'>제목</option>
            <option value='a.gr_id'>그룹ID</option>
        </select>
        <input type=text name=stx required itemname='검색어' value='<?=$stx?>'>
        <input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
</tr>
</form>
</table>

<table width=100% cellpadding=5 cellspacing=1 bgcolor=e6e6e6>
<form name=fboardlist method=post>
<input type=hidden name=sst  value="<?=$sst?>">
<input type=hidden name=sod  value="<?=$sod?>">
<input type=hidden name=sfl value="<?=$sfl?>">
<input type=hidden name=stx  value="<?=$stx?>">
<input type=hidden name=page    value="<?=$page?>">
<colgroup width=30>
<colgroup width=>
<colgroup width=100>
<colgroup width=100>
<colgroup width=55>
<colgroup width=55>
<colgroup width=55>
<colgroup width=55>
<colgroup width=35>
<colgroup width=35>
<colgroup width=80>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
    <td rowspan=2><input type=checkbox name=chkall value="1" onclick="check_all(this.form)"></td>
    <td rowspan=2><?=subject_sort_link("bo_table")?>TABLE</a></td>
    <td colspan=2><?=subject_sort_link("bo_subject")?>제목</a></td>
    <td rowspan=2 title="글읽기 포인트"><?=subject_sort_link("bo_read_point")?>읽기<br>포인트</a></td>
    <td rowspan=2 title="글쓰기 포인트"><?=subject_sort_link("bo_write_point")?>쓰기<br>포인트</a></td>
    <td rowspan=2 title="코멘트쓰기 포인트"><?=subject_sort_link("bo_comment_point")?>코멘트<br>포인트</a></td>
    <td rowspan=2 title="다운로드 포인트"><?=subject_sort_link("bo_download_point")?>다운<br>포인트</a></td>
    <td rowspan=2 title="검색사용"><?=subject_sort_link("bo_use_search")?>검색<br>사용</a></td>
    <td rowspan=2 title="검색순서"><?=subject_sort_link("bo_order_search")?>검색<br>순서</a></td>
<td rowspan=2><a href="$g4[admin_path]/board_form.php"><img src='<?=$g4[admin_path]?>/img/icon_insert.gif' border=0 title='생성'></a></td>
</tr>
<tr class='bgcol1 bold col1 ht center'>
    <td><?=subject_sort_link("a.gr_id")?>그룹</a></td>
    <td><?=subject_sort_link("bo_skin", "", "desc")?>스킨</a></td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
// 스킨디렉토리
$skin_options = "";
$arr = get_skin_dir("board");
for ($k=0; $k<count($arr); $k++)
{
    $option = $arr[$k];
    if (strlen($option) > 10)
        $option = substr($arr[$k], 0, 18) . "…";

    $skin_options .= "<option value='$arr[$k]'>$option</option>";
}

for ($i=0; $row=sql_fetch_array($result); $i++)
{
    $s_upd = "<a href='$g4[admin_path]/board_form.php?w=u&bo_table=$row[bo_table]&$qstr'><img src='$g4[admin_path]/img/icon_modify.gif' border=0 title='수정'></a>";
    $s_del = "";
    if ($is_admin == "super")
        $s_del = "<a href=\"javascript:del('$g4[admin_path]/board_delete.php?bo_table=$row[bo_table]&$qstr');\"><img src='$g4[admin_path]/img/icon_delete.gif' border=0 title='삭제'></a>";
    $s_copy = "<a href=\"javascript:board_copy('$row[bo_table]');\"><img src='$g4[admin_path]/img/icon_copy.gif' border=0 title='복사'></a>";

    /*
    // 스킨디렉토리
    $skin_options = "";
    $arr = get_skin_dir("board");
    for ($k=0; $k<count($arr); $k++)
    {
        $option = $arr[$k];
        if (strlen($option) > 10)
            $option = substr($arr[$k], 0, 18) . "…";

        $skin_options .= "<option value='$arr[$k]'";
        if ($arr[$k] == $row[bo_skin])
            $skin_options .= " selected";
        $skin_options .= ">$option</option>";
    }
    */

    $list = $i%2; //홀짝의 구별 0또는1;
if($list==0) $trcolor='#f0f0f0'; else $trcolor='#f8f8f9';
//echo"$list";
    echo "<input type=hidden name=board_table[$i] value='$row[bo_table]'>";
    //echo "<tr class='list$list col1 ht center'>";
echo"<tr><td colspan='20' height='3' bgcolor='#b7b8b5'></td></tr>";
    echo"<tr col1 ht center bgcolor='$trcolor'>";
    echo "<td rowspan=2 height=25><input type=checkbox name=chk[] value='$i'></td>";
    echo "<td rowspan=2><a href='$g4[bbs_path]/board.php?bo_table=$row[bo_table]'><b><font color='#0065B0'>$row[bo_table]</font></b></a><br><br>&nbsp;
<a href='$g4[admin_path]/board_form.php?w=u&bo_table=$row[bo_table]&$qstr'>
<img src='$g4[admin_path]/img/btn_update.gif' border='0'></a></td>";

    echo "<td colspan=2 align=left height=25><input type=text class=ed name=bo_subject[$i] value='".get_text($row[bo_subject])."' style='width:99%'></td>";
    echo "<td rowspan=2 title='읽기 포인트'><input type=text class=ed name=bo_read_point[$i] value='$row[bo_read_point]' style='width:33px;'></td>";
    echo "<td rowspan=2 title='쓰기 포인트'><input type=text class=ed name=bo_write_point[$i] value='$row[bo_write_point]' style='width:33px;'></td>";
    echo "<td rowspan=2 title='속글쓰기 포인트'><input type=text class=ed name=bo_comment_point[$i] value='$row[bo_comment_point]' style='width:33px;'></td>";
    echo "<td rowspan=2 title='다운로드 포인트'><input type=text class=ed name=bo_download_point[$i] value='$row[bo_download_point]' style='width:33px;'></td>";
    echo "<td rowspan=2 title='검색사용'><input type=checkbox name=bo_use_search[$i] ".($row[bo_use_search]?'checked':'')." value='1'></td>";
    echo "<td rowspan=2 title='검색순서'><input type=text class=ed name=bo_order_search[$i] value='$row[bo_order_search]' size=2></td>";
    echo "<td rowspan=2 align='center'>$s_upd $s_del $s_copy</td>";
    echo "</tr>";
    echo "<tr class='list$list col1 ht center'>";

    if ($is_admin == "super")
        echo "<td align=left>".get_group_select("gr_id[$i]", $row[gr_id])."</td>";
    else
        echo "<td align=center><input type=hidden name='gr_id[$i]' value='$row[gr_id]'>$row[gr_subject]</td>";

    echo "<td align=left><select id=bo_skin_$i name=bo_skin[$i]>$skin_options</select></td>";
    echo "</tr>\n";
    echo "<script language='JavaScript'>document.getElementById('bo_skin_$i').value='$row[bo_skin]';</script>";
}

if ($i == 0)
    echo "<tr><td colspan='$colspan' align=center height=100 bgcolor=#ffffff>자료가 없습니다.</td></tr>";

echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";

$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$qstr&page=");
echo "<table width=100% cellpadding=3 cellspacing=1>";
echo "<tr><td width=70%>";
echo "<input type=button class='btn1' value='선택수정' onclick=\"btn_check(this.form, 'update')\"> ";

if ($is_admin == "super")
    echo "<input type=button class='btn1' value='선택삭제' onclick=\"btn_check(this.form, 'delete')\">";
echo "</td>";
echo "<td width=30% align=right>$pagelist</td></tr></table>\n";

if ($stx)
    echo "<script>document.fsearch.sfl.value = '$sfl';</script>";
?>
</form>

<script language="JavaScript">
function board_copy(bo_table)
{
    window.open("$g4[admin_path]/board_copy.php?bo_table="+bo_table, "BoardCopy", "left=10,top=10,width=500,height=200");
}
</script>


</td><tr></table>
<?
include_once("$g4[path]/tail.php");
include_once("$g4[path]/tail.sub.php");
?>
오달수 님께서는서 img src='<?=$g4['path']?>/image/aaa.gif' border='0'>

모든..........이미지 링크 할때 <?=$g4['path']?> 그누보드 상대경로 ..넣고선...이미지 를 링크 시키란 말이군요...^^  그럼 ....이미지는 나오겠지요...


헤더 파일 푸터 파일 .......이미지 링크 실때.<img src="/image/dd.gif"> 이런식으로 링크 시켰기때문에...

모든 페이지 ................걸쳐서 <img src="image/dd.gif"> 이걸 <img src="<?=$g4['path']?>/image/dd.gif">
<?=$g4['path']?> 이 상대 경로 변수를......... 넣으란 말 인데.

만약 100페이지 모든 이미지 링크를 ....<?=$g4['path']?> 이걸로 .....바꾸라는 소리 로 들리네요...

답변 감사합니다... 혼자서 해결 해보도록 하겠습니다 ^^
main/adm/보드리스트.php 에서
main/image/ 방에 있는 이미지를 불러 올때 어떤 수로 불러오죠?
../image/ 와
<?=$g4['path']?>/image/ 의 다른 점은 무엇인가요?
루트 - main(그누보드)
        image
        index.html
        head.html
        tall.html

현재 대층 이런 구조구요.......

게시판 자체에서 인쿠루드 하여 ....루트 / head.html &tall.html 인쿠루드 할려는 거구요.
이때..... head.html  페이지에서는 당연 .그누보드 와 연관되지 않았기때문에
  <img src="image/dd.gif"> 와 같은 방식으로 링크 되어 있는 상태입니다...

그런데...... 이건 문제가 안되는데 ㅎㅎ 게시판에서 인쿠루드 하면...... 무조건 root/main(그누보드)/bbs/image로 변경 되서 ......... 지 혼자 링크 된다는 거예요...그래서 이미지 표시가 안되요.

꽁수를 쓰자면...오달수님께서 말씀 하신 <?=$g4['path']?>/dd.gif 로 할수 있서요... 또 이런 식으로도 가능하더라구요 ../../image/dd.gif


현재 만들어 놓은 이미지 나 모든 파일의 링크를 <img src"image/dd.gif"> 를......모든 경로를 <?=$g4['path']?> 이나 ../../ 이걸로 추가 해서 바꾸어야 할 실정이랍니다 ㅠㅠ 답답 합니다 그래서
그누보드는 노프레임 구조입니다.
장단점이 있겠지만 aaa.php, aab.php 식으로 노가다를 하지 않고
_head.php(상단)  과 _tail.php(아래)의 페이지를 만듭니다.
제로에서 넘어 오신 분들이 많이 착각하시는 부분입니다.
그리고 여러개의 서버를 1개의 서버처럼 쓰는 가상디렉토리(WebDav)의 구현은 어쩔수 없이
내부ip에 구성된 절대경로를 쓰지만
그 이외는 모든 '도큐멘트루트'로 부터 파생되는 경로는 상대경로로 쓸수 있습니다.
퍼미션이 허용하는한..
참고하십시요.
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=1758
굳이 다른 표현을 빌자면,
질문자께서는 간단하게 예약된 상대경로와,
일반적인 상대경로의 의미를 좀 더 생각해 보실 필요가 있을 것 같습니다.

$g4[path]라는 변수는,
그누보드가 설치된 경로를 기본경로로 인식시켜,
특정 웹페이지가 구현될 계정의 상대경로의 깊이를,
일일이 ../, ../../ 등과 같이 설정하는 것이 아니라,
$g4[path]라는 변수를 빌어와 경로를 단순화 시키는 의미를 갖고 있습니다.
나스카님께서 .는 제 질문의 요지를 이해못하신것 같습니다....

$g4[path] 개념은 알고 있고요...저는 경로 문제 보다는...

이런식 : 루트 -> main(그누보드)
                      image

이미지 폴더를 몽땅
            루트->main- bbs - image

이곳에 .....갖다 놓으면....이미지가 표시 됩니다.

이것은..그누보드 자체가 $g4[path] 이것에 따라서...루트 / 그누보드 /bbs /
로 된다 이것이죠.....

이 영역 밖을....벗어나서......루트 /image 링크 하는 것을 원했던것입니다.
하지만....반드시 $g4[path] 이것으로 링크 거는 것보다        그냥 단순 상대 경로 ./ 이런식으로
원했던거구요....왜냐면....직접 코딩 방식이 아닌....드림위버 수많은 디자인을 무진장 만들어 내서 링크를 걸건데.

그걸 일일히 이미지 마다 $g4[path] 이 변수를 넣어서 링크를 걸지 못한다는 겁니다.

더쉽 게...... 하면.......

루트 / 그누보드/ bbs 가아닌 ----------> 루트/그누보드/image  이 런 방식으로 한구절만 ....수정 하면

모든 링크가...... 자동적으로 루트 /그누보드/image 로 가지 않을까 해서.... 글을 올려보았는데....;;
정확한 해답이 나오지 않는 군요.....

제 자신이 너무 답답 해서....오늘 부터 프로그래밍 입문 할겁니다 ......ㅇㅇ

정말 답변 열심히 해주셔서 감사합니다. 오달수 / 나스카님 ///

오달수님께서 올려 주신 방법 참고 하겠습니다.
그런데 위지윅방식의 웹에디터에서 경로를 지정할 경우,
흔히 평행 위치의 이미지가 아니라,
다른 계층에 존재하는 이미지를 끌어 올 경우,
./경로명 또는 ../경로명, ../경로명/경로명와 같은 형태가 아니라,
../, ../../와 같은 형태로 경로를 인식하게 되는 걸까요?

아울러 '탈 디렉토리'의 개념이라면,
'유창화'님께서 공개해주신 팁도 적절히 참조하시면 되겠습니다.
제 자신이...무진장....초라 해보입니다.....

해결 방법은 "$g4[path] 이문제 도 아니도

단순  "/image"  이거냐 "image" 이거에서 비롯 된 문제였네요...

참 상대 경로 지정도 못한 제가 너무 부끄러워서 .....너무 민망 하고 쪽팔려서 .....올릴까 말까 했는데

쪽팔림을 무릅 쓰고 올려 보네요............

루트 - >그누보드(main)
                        image

즉 해결방법은 루트 에 있는 image 폴더를 main/image 로 옮긴후.....            게시판에 상단 하단
 head.php 에서................ 경로 수정을............ 기존 "image/dd.gif" 에서 -> "/image/dd.gif" 로 잡아 주니
경로 표시 잘 되고........이미지 경로가 루트->main/image 로 잘 잡히네요..... 제 자신이 너무 부끄럽습니다..

>.<
말끔하게 해결 하셨다니 다행입니다.

충분히 착각하실 수 있는 부분이라 여겨집니다.
물론 부끄러워 하실 부분도 아니시구요.

일반적인 상대경로의 의미(물론 이 경우는 '웹문서 루트'에서의 상대경로)와,
g4의 위치에서 바라보는 상대경로(g4와 연동시키기 위해서)라는 의미는
자칫 헷갈릴 수 있는 부분이라고 봅니다.
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT