URL에 특정구문(?) 붙이기 > 그누4 질문답변

그누4 질문답변

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

URL에 특정구문(?) 붙이기 정보

URL에 특정구문(?) 붙이기

본문

그누보드의 모든 url에 특정구문(mbid=$mbid)을 붙이려고 합니다. 예를 들면...


g4/index.php?mbid=$mbid (인덱스)
94/bbs/board.php?mbid=$mbid&bo_table=free (게시판)
94/bbs/board.php?mbid=$mbid&bo_table=free&wr_id=3 (게시판 본문)
94/bbs/write.php?mbid=$mbid&bo_table=free (게시판 글쓰기)
94/bbs/login.php?mbid=$mbid&bo_table=free&url=... (게시판 로그인)
g4/bbs/register.php?mbid=$mbid (회원가입)
g4/bbs/register_form.php?mbid=$mbid (회원가입폼)
g4/bbs/search.php?mbid=$mbid&.... (검색)

등등.......


이걸 어제 밤새도록 bbs안에 있는 파일을 일일이 뒤져가며 링크마다 mbid=$mbid를 넣어줬는데 너무 무식한 방법이라는 생각이 드는군요. ㅜㅡ
아직 안되는 경우도 있고....

오늘 생각해보니 어느 파일 한 곳만 손보면 의외로 쉽지 않을까도 싶은데 좀 부탁드립니다.



이거 되고나면 팁으로도 올리려고 하는데 이걸 하려는 이유는 이렇습니다.

도메인/myid 개념의 홈페이지를 분양하려고 하거든요. myid가 바로 mbid가 되는 거죠.

그래서 extend/index.php에 아래 소스를 넣었습니다. 처음엔 이것도 몰라서 head.php, tail.php 등에 다 넣었습니다;;; 혹시 더 좋은 방법이 있다면 알려주세요^^;;


<?
if (!defined('_GNUBOARD_')) exit;

function getURL(){ // 다른 곳에 쓸 경우에는 getURL1, getURL2 이런 식으로 ..
$server=getenv("SERVER_NAME");
$file=getenv("SCRIPT_NAME");
$query=getenv("QUERY_STRING");
$url="http://$server$file";
if($query) $url.="?$query";
return $url;
}
$url_p = getURL(); // 다른 곳에 쓸 경우에는 getURL1, getURL2 이런 식으로 ..

$mbid_url = strchr("$url_p","mbid=") ;
$mbid0 = substr("$mbid_url", 5);
$mbid1 = explode("&", $mbid0);
$mbid = $mbid1[0];
?>

보면 아시다시피 현재페이지의 url에서 myid만 뽑아내는 거죠. ($mbid)

이렇게 해서 head.php에 아래 소스로 각 회원의 홈페이지의 도메인과 회원정보를 나타낼 수 있었습니다.

www.myhompy.com/<?=$mbid?> (도메인)
<? $profile = get_member("$mbid"); // $mbid의 회원정보 불러오기 ?>
<?=$profile[mb_nick]?>님의 홈페이지입니다.
<?=$profile[mb_hp]?> (전화번호)
<?=$profile[mb_tel]?> (휴대폰)
<a href=mailto:<?=$profile[mb_email]?>><?=$profile[mb_email]?></a> (메일)


아무튼 이런 이유로 모든 페이지의 url에 'mbid=$mbid&'라는 구문을 넣으려고 합니다.

그럼 부탁합니데이~~~
  • 복사

댓글 전체

모든 파일이 아니고 그누 보드 관련 파일만 해야 하니까

서버 설정은 좀 무리가 있고(mod_rewrite)
http://sir.co.kr/bbs/board.php?bo_table=pl_qa&wr_id=164&sca=&sfl=wr_subject%7C%7Cwr_content&stx=mod&sop=and

저도 저런 경우가 있어서 어쩔 수 없이 소스 뒤져가며 고쳤습니다.
mbid란 변수를 그누보드 전체에서 쓰시고 싶은듯 한데 그런 노가다 모드 좋지 않습니다....ㅋㅋ
쉬운 방법 알려드리죠.
그누보드 최상위 디렉토리보면 extend라는 디렉토리가 있습니다.
이 디렉토리에 아무이름의 php파일을 생성합니다.
그리고 그 php파일에 다음과 같은 내용을 추가하세요.

global $mbid = 1234;

끝입니다. 기본값으로 mbid변수에 1234를 넣어주는것이고 다른걸 넣어도 상관없습니다. 필요에 따라서 기본값을 넣으세요.
기본값이 필요없으시면 그냥 global $mbid; 라고만 선언해도 그누보드의 헤더파일을 인클루드 하는 곳에서는 전부 공유되는것이죠.
그리고 그때그때마다 변경하기 싶으실때는 변경을 원하는 파일에서 mibid = "abc"; 이렇게 넣어주시면 되고요. ㅎ
원 게시물에 게재되어 있는 형태는,
index.php를 거쳐 연동시키는 gnu3.xx의 형태라면 간단히 설명될 듯 합니다.
현재의 g4는 common.php에서 gnu3.xx의 index.php 역할을 수행하고 있지요.

일단, 추상적인 내용이 될 수 있으니,
gnu3.xx의 index.php의 다음 구문을 먼저 참조하셔야 할 것 같군요.
?doc=$doc과 같은 구문을 참조하시기 바랍니다.

단순히 회원의 공간(게시판, 블로그의 개념)을 할당하는 질문이었다면,
유아원님의 '하우스'나 블로그 등을 참조하시라는 답변을 드렸을 겁니다.


그런데... 원게시물에 언급되어 있는,
index.php?mbid=$mbid의 형태를 제외하고는,
다음의 문구가 특별한 의미가 있을지 의문입니다.

============================================
94/bbs/board.php?mbid=$mbid&bo_table=free (게시판)
94/bbs/board.php?mbid=$mbid&bo_table=free&wr_id=3 (게시판 본문)
94/bbs/write.php?mbid=$mbid&bo_table=free (게시판 글쓰기)
94/bbs/login.php?mbid=$mbid&bo_table=free&url=... (게시판 로그인)
g4/bbs/register.php?mbid=$mbid (회원가입)
g4/bbs/register_form.php?mbid=$mbid (회원가입폼)
g4/bbs/search.php?mbid=$mbid&.... (검색)
============================================

왜 각각의 개별적인 형태(물론 각각의 소스파일이 구조상 개별적인 형태는 아닙니다만...)의
기능을 담당하는 상단과 같은 형태를 원하시나요?
참고로 2차도메인으로 회원들에게 주어진 각 홈페이지들은 모두 동일한 내용들입니다. 즉 상단에 보이는 2차도메인들만 달라질 뿐 그누보드의 똑같은 페이지들을 공유하는 셈이죠.

그리고 (워낙 기초가 없어서 설명하기도 힘드네요^^;;) 각 페이지의 url에서 회원들에게 부여한 도메인(회원아이디)을 뽑아내서 다시 페이지 상단에 그것을 토대로 2차도메인, 회원정보 등을 나타내려다 보니까 이런 방법을 구상하게 됐습니다.

더 세련된 방법이 있겠지만 이게 제가 그나마 생각할 수 있는 최선이군요^^;
========================================
사이트 개념이라고 한다면,
보드 전체적인 검색이나 기능이 아니라면,
즉, 각각의 회원영역(미니홈피의 개념)에서 검색할 경우,
하나의 변수로(변수처럼) 처리되고 있는 회원정보를 url에 묶어서,
일반적인 사용자가 궁극적으로 찾으려하는 정보를
특정회원($mbid)를 기준으로 그 한계를 정하고자 한다.
========================================
~ 이신 듯 합니다.

이를테면 페이지내 검색의 미니홈피 내 검색정도?
/bbs/search.php를 기준으로 한다면,
특정게시판에서만 검색하는 정도?!
~ 이 정도의 개념이 될 듯 하군요.

게시판에 관한 부분이라면,
특정한 조건(성별입력/남녀)에 따라 연관되는 카테고리를
리스트에서 view로 물고 들어가는 '찜질방'스킨에서 힌트를 얻으시기 바랍니다.
굳이 mbid를 물고 들어가려는 것은,
mbid에 대한 자료로 한정짓기 위함으로 파악됩니다.
정 번거로운 과정을 겪어야 한다면,
일련의 과정을 스킨으로 처리하실 것을 권해 드립니다.

1. /config.php에서 새로운 경로를 변수화 시키고,
2. common.php에서 새로운 경로에 대한 출력을 스킨화시키고,
3. mbid를 간직(기억)하고 있어야 할 웹페이지 또한 새롭게 추가할 스킨형태에서
  경로(url) 형태로 묶어주기.

관련키워드 ; path, $skin, $skin_path, $skin_dir ...
예를 들어서 GET 변수로 스킨을 지정하고 싶다면(쿠키 빼 주세요)

소스 안에 있는 많은 게시판 링크에도 이 변수를 넣어 줘야 하니까

삽질을 할 수밖에 없다는 지구인?님 호소 같습니다.
감사합니다^^ 근데 롤로님의 말씀이 어떤 의미인지도 잘 모르는 수준입니다. ㅡㅜ

(물론 저보고 한 말씀이 아니란 건 압니다만 ㅎㅎ;)
© SIRSOFT
현재 페이지 제일 처음으로