$bo_table 값의 변경, 다르게 질문드려요

$bo_table 값의 변경, 다르게 질문드려요

QA

$bo_table 값의 변경, 다르게 질문드려요

본문

예를 들어, 


/board.php?bo_table=free 에 새 글을 쓴 후에 
/board.php?bo_table=qa 에 다른 새글을 쓰려고 합니다. 


그럼 여기서 $bo_table값이 free에서 qa로 바꾸게 하는 url 소스가 어디에 있는지요.

 

view.skin, list.skin에서 url을 보면

 

<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b02 btn"><i class="fa fa-pencil" aria-hidden="true"></i> 글쓰기</a></li><?php } ?>

 

$write_href 을 호출하는데, 이는 

$write_href = './write.php?bo_table='.$bo_table; 이렇게 되어있습니다.

여기에 $bo_table값이 free인지 qa 인지 어떻게 구분을 할 수 있을까요?

 

새로운 글을 쓸때 write.skin 에

<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">

여기 또한 $bo_table을 호출할뿐, 그 $bo_Table이 그 $bo_table인지..

 

$bo_table값이 정해진 값이 아니라는거 알고 있어요. 매번 다른 게시판 값이 될 수 있으니까요. 예를 들어 free에서 qa로 바꾸려고 할때, 그것을 가능하게 해주는 url소스코드인지 $bo_table 변수의 "분류 형식" 코드같은 소스가 어디에 있는지요.

 

감사합니다

 

 


 

이 질문에 댓글 쓰기 :

답변 9

write.skin.php 파일에 아래 소스 있잖아요.

<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">

 

이 소스가 주소창의 bo_table 변수를 담아두는 역할을 해요.

 

그럼, 글쓰기 확인 버튼 누르잖아요.

 

그럼, form 에 적용된 action 링크 타고 숨김 형식으로 글쓰기 업데이트 파일로 넘어가요.

 

그럼, 업데이트 파일이 저 변수를 받아서 해당 게시판 테이블 형식의 변수로 만들고,

글이 해당 게시판 테이블로 저장된답니다.

 

 

원하는 게 이게 아니실려나..ㅎ

답변 감사해요.

자유게시판에 글쓰기 버튼을 누르기 전에, 이미 write.php?bo_table=free 링크가 지정되어있죠?
질문답변 게시판에 글쓰기 버튼 누르려 마우스 올리면 밑에 write.php?bo_table=qa가 뜨죠.

자유게시판 글쓰기엔 value="<?php echo $bo_table ?>">가 free로,
질문답변 글쓰기엔 value="<?php echo $bo_table ?>">가 qa로

같은 $bo_table 변수인데 왜 다른건지요

질문을 잘못 하였어요.

자유게시판에 글쓰기 버튼을 누르기 전에, 이미 write.php?bo_table=free 링크가 지정되어있죠?
질문답변 게시판에 글쓰기 버튼 누르려 마우스 올리면 write.php?bo_table=qa 링크가 뜨죠.

어떻게 하여 bo_table=qa, bo_table=free 링크가 주소창에 이미 지정이 되어 있는건가요?

list.skin.php 파일이나 view.skin.php 파일에도 저럼 숨김 설정이 있어서 그렇습니다.
원천 뿌리를 보시려면, 메뉴 관련 소스를 보셔야 할 듯..
메뉴 링크를 거는 순간 bbs/list.php 파일로 보내니까요. 그럼 요것이 bbs/board.php 파일로 들어가구요,

url 에 bo_table = free 라고 값을 받아 왔잖아요. 그 값에 bo_table 의 값은 free 라고 선언을 했는데 그걸 어디서 받아 왔는지 확인 하시려는 건가요?

list.skin, view.skin, write.skin 에 대해선 bo_table 은 정해진 값으로 db 테이블에 연결해서 값을 보여 주거나 저장하거나 합니다.

 

링크 값에서 이미 bo_table 에 대한 값을 지정(선언)했습니다.

board.php?bo_table=free 라고요.. bo_table = free

자유게시판에 글쓰기 버튼을 누르기 전에, 이미 write.php?bo_table=free 링크가 지정되어있죠?
질문답변 게시판에 글쓰기 버튼 누르려 마우스 올리면 write.php?bo_table=qa 링크가 뜨죠.

어떻게 하여 bo_table=qa, bo_table=free 링크가 주소창에 이미 지정이 되어 있는건가요?

url의 bo_table값을 $_GET['bo_table']로 가져오지 않고 

바로 $bo_table 변수로 참조할 수 있는 것은 extract함수 때문입니다.

이것은 common.php 라인 113에 보면 거기서 처리되어 있어

편하게 바로 $bo_table로 게시판을 참조할 수 있게됩니다.

답변 감사합니다. 다만 제가 찾는 답변이 아니어서요..

자유게시판에 글쓰기 버튼을 누르기 전에, 이미 write.php?bo_table=free 링크가 지정되어있죠?
질문답변 게시판에 글쓰기 버튼 누르려 마우스 올리면 write.php?bo_table=qa 링크가 뜨죠.

어떻게 하여 bo_table=qa, bo_table=free 링크가 주소창에 이미 지정이 되어 있는건가요?

http://demo.sir.kr/gnuboard5/bbs/board.php?bo_table=n_gallery&wr_id=11

 

이런식으로 URL에 따라서 bo_table의 값이 적용됩니다.

 

요청해주시는 문의는 한번 글을 작성을 했다면 free 게시판에서 qa게시판 글쓰기로 링크 걸어주고싶으신거같은데 그럴려면 커스터마이징 개발을 하셔야 합니다.

 

해당 게시판에서 글쓴 이력이 있나 확인하여야 하고 있다면 글쓰기 버튼의 링크를 qa글쓰기 버튼 링크로 이동하게끔 작업이 필요합니다.

 

 

그뜻이 아니라...
그누보드 안에 소스가 이미 있는데 제가 못 찾고있는거에요..
자유게시판에 글을 쓰려 할때 write.php?bo_table=free 가 저절로 잘 되고,
질문게시판에 글을 쓰려할때 write.php?bo_table=qa 가 저절로 잘 이뤄집니다.

스크립트 내에서는 하나의 $bo_table로 통하는데,
자유게시판에 글을 쓸때 $bo_table값은 free,
질문게시판에 글을 쓸때는 $bo_table값이 qa가 됩니다.
스크립트에서 $bo_table값이 어떻게 바뀌었느냐입니다.
제 질문 뜻을 이해하시겠어요?

메뉴나 버튼에 원하는 곳으로 링크를 겁니다.

<a href='/board.php?bo_table=free'>자유게시판</a>

<a href='/board.php?bo_table=qa'>질문게시판</a>

 

그럼 board.php 에서 $bo_table 값으로 인해 자유게시판이 되고 질문게시판이 됩니다.

$_REQUEST['bo_table'] 은 bo_table 에 대한 전달값이 POST 일수도 있고 GET 일수도 있을 때 사용합니다.

윗분처럼 다시 설명드려요~
그 뜻이 아니라..

그누보드 안에 소스가 이미 있는데 제가 못 찾고있는거에요..
자유게시판에 글을 쓰려 할때 write.php?bo_table=free 가 저절로 잘 되고,
질문게시판에 글을 쓰려할때 write.php?bo_table=qa 가 저절로 잘 이뤄집니다.

스크립트 내에서는 하나의 $bo_table로 통하는데,
자유게시판에 글을 쓸때 $bo_table값은 free,
질문게시판에 글을 쓸때는 $bo_table값이 qa가 됩니다.
스크립트에서 $bo_table값이 어떻게 바뀌었느냐입니다.
제 질문 뜻을 이해하시겠어요?

common.php 파일에서 

$bo_table 을 가공하는 걸로 기억합니다.

 

 

/bbs/list.php

/bbs/view.php

 


if($bo_table == 'free'){
    $write_href = './write.php?bo_table=qa'; 
}elseif($bo_table=='qa'){
    $write_href = './write.php?bo_table=free'; 
}else{
    $write_href = './write.php?bo_table='.$bo_table; 
}

 

주제 넘는 이야기일지 모르겠지만 음바폐님께서는 php 기본 강좌부터 시작하셔야 할 것 같습니다.

주제 넘는 말씀하셔도 됩니다.
지금 쓰신 코드를 list랑 view에 입력하라는 말씀이신가요?

아이고.. 제 질문을 이해못하신듯해요.

제가 따로 코드를 입력하기 위해 써달라는것이 아니에요..
그누보드는 제가 자유게시판에 글을 쓰려 할때 write.php?bo_table=free 로 보내지고
질문게시판에 글을 쓰려할때 write.php?bo_table=qa 로 글을 쓸 수 있게끔 이미 되어있어요.

그 코드가 어디에 있냐고 질문 드린거에요.

$bo_table값이 어떻게 바뀌는지, 그 바뀌는 과정을 알고 싶은거에요. 하나의 $bo_table이고 매번 url들은
'./write.php?bo_table='.$bo_table; 이 형식이어서요.
이해하셨나요?

데이터베이스 bo_table 필드에 qa, notice, gallery, free 4개의 레코드값이 있다고 칠때,
새로운 글을 notice 테이블에 저장을 할때 $bo_table값이 지금은 notice인데
또 하나의 새로운글을 gallery에 저장하고 싶다면 $bo_table값이 어떻게 gallery로 바뀌어지는지 물어본거에요

자유게시판에 글쓰기 버튼을 누르기 전에, 이미 write.php?bo_table=free 링크가 지정되어있죠?
질문답변 게시판에 글쓰기 버튼 누르려 마우스 올리면 write.php?bo_table=qa 링크가 뜨죠.

어떻게 하여 bo_table=qa, bo_table=free 링크가 주소창에 이미 지정이 되어 있는건가요?

음 제가 질문을 잘 이해 못하고 있는 건가요?

 

php.ini 에서 변수의 성격을 정의 하고 있습니다. 

 

음 까먹었는데, scgp 였나?

 

$_COOKIE['bo_table']='bb';

$_SESSION['bo_table']='cc';

$_GET['bo_table']='dd';

$_POST['bo_table']='ee';

$_REQUEST['bo_table'] = 'ff';

 

라고 했을때 $_POST['bo_table'] 의 값인 'ee' 가 $bo_table의 값이 됩니다.

 

php.ini 에서

register_globals ='on';

이 되어 있을때, 

 

echo $bo_table; 했을때 위 순서에 맞게 알아서 $bo_table에 값을 할당합니다.

 

만약 register_globals='off'; 라면

$bo_table = $_POST['bo_table'];

라고 선언하지 않고 echo $bo_table; 하면 값이 없게 되어 '' 빈문자열로 나오게 됩니다.

 

이것을 한번더 확실히 하고자  extract($_POST);extract($_GET); 로 값을 가공합니다.

 

위에서 언급한 $_POST['bo_table'] 은 <form></form>을 통해서 넘어오게 되므로  사람의 눈으로는 확 인 안되고 .. $_GET['bo_table'] 은 ?bo_table=aa&wr_id=3 이렇게 주소에 남겨지게 됩니다.

$_REQUEST['bo_table']은 $_POST['bo_table']이 있으면 이 값을 갖고 없으면 $_GET['bo_table']값을 갖습니다. 즉 $_POST가 우선권이 있습니다.

 

 이러한 변수의 정의를 물어 보시는지요?

답변 감사합니다. 다만 제가 찾는 답변이 아니어서요..

자유게시판에 글쓰기 버튼을 누르기 전에, 이미 write.php?bo_table=free 링크가 지정되어있죠?
질문답변 게시판에 글쓰기 버튼 누르려 마우스 올리면 write.php?bo_table=qa 링크가 뜨죠.

어떻게 하여 bo_table=qa, bo_table=free 링크가 주소창에 이미 지정이 되어 있는건가요?

'더 보기' 버튼을 못봐서 글이 이렇게 긴줄 이제서야 알았네요. 답변을 성심 성의껏 써주신것에 정말 감사드립니다. 해답은 다른 부분에서 찾았습니다~ 써주신 부분에 대해서도 한번 공부해봐야겠어요.

$_COOKIE['bo_table']='bb';

$_SESSION['bo_table']='cc';

$_GET['bo_table']='dd';

$_POST['bo_table']='ee';

$_REQUEST['bo_table'] = 'ff';

에 대해 공부해보겠습니다. 감사합니다

$bo_table의 값을 변경하는 것은

 

common.php 에서 생성된 $bo_table변수를 변경하면 됩니다.

common.php의 젤 하단이나 변경하고자 하는 페이지에서

 

include_once '../common.php';

$bo_table='cc'; 라고 하게 되면 해당 페이지에서 $bo_table을 강제로 바꾸게 됩니다.

 

 

아니면 bo_table값을 가공하기전에

 

$_POST['bo_table'] ='cc';

$_GET['bo_table']='cc';

include_once '../common.php';

 

라고 하셔도 되고

 

혹은

$is_page='yes';

 

common.php 의 젤 하단에

if(is_set($is_page) && $is_page=='yes')

  $bo_table='bb';

 

 

라고 할 수도 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 85
QA 내용 검색
filter ##php ×

회원로그인

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