삭제는 gbdelete.php, 수정은? 정보
그누보드 삭제는 gbdelete.php, 수정은?본문
삭제에 대한 여러가지 명령들은 gbdelete.php에 있다는 것을 알았습니다.
여러 고수님들이 삭제에 대한 도움을 주셔서 고칠 수 있었습니다.
그런데 글수정의 명령은 어느 파일에 있는지 모르겠습니다.
gbupdate.php인지 gbform.php인지 아무리 소스를 봐도 모르겠습니다. ㅠ.ㅠ
글수정에서 누구나 수정 가능하게 할려면 어디를 만져야 하는지 가르쳐주세요
여러 고수님들이 삭제에 대한 도움을 주셔서 고칠 수 있었습니다.
그런데 글수정의 명령은 어느 파일에 있는지 모르겠습니다.
gbupdate.php인지 gbform.php인지 아무리 소스를 봐도 모르겠습니다. ㅠ.ㅠ
글수정에서 누구나 수정 가능하게 할려면 어디를 만져야 하는지 가르쳐주세요
댓글 전체
여러개 파일 수정하면 넘 힘들죠
한방에 하는 방법 찾아습니다.
lib/gnuboard.lib.php <<==요눔 수정하세요.
// 관리자인가?
function is_admin($mb_id)
{
global $default, $cfg, $group, $board;
$is = '';
if ($mb_id) {
if ($default[de_admin] == $mb_id) {
$is = 'default';
} else if ($group[gr_admin] == $mb_id) {
$is = 'group';
} else if ($board[bo_admin] == $mb_id) {
$is = 'board';
}
========================================추가부분
else {
$oboard = '원하는 TABLE';
if($bo_table == '$oboard'){
$is = $mb_id;
}
===================================추가끝..
한방에 하는 방법 찾아습니다.
lib/gnuboard.lib.php <<==요눔 수정하세요.
// 관리자인가?
function is_admin($mb_id)
{
global $default, $cfg, $group, $board;
$is = '';
if ($mb_id) {
if ($default[de_admin] == $mb_id) {
$is = 'default';
} else if ($group[gr_admin] == $mb_id) {
$is = 'group';
} else if ($board[bo_admin] == $mb_id) {
$is = 'board';
}
========================================추가부분
else {
$oboard = '원하는 TABLE';
if($bo_table == '$oboard'){
$is = $mb_id;
}
===================================추가끝..
또한 수정권한을 주기위한 gbform.php에서 보셔야할부분은
87라인에 있는
if (!$member[mb_id] || ($is_admin && $w == 'u' && $member[mb_id] != $write[mb_id])) {
$is_name = true;
$is_passwd = true;
if ($default[de_use_email]) {
$is_email = true;
}
if ($default[de_use_homepage]) {
$is_homepage = true;
}
}
부분과 140라인부터 있는
} else if ($w == 'u') {
$passwd_required = "";
if (!$is_admin) {
if (!($member[mb_id] && $member[mb_id] == $write[mb_id])) {
$wr_passwd = sql_password($wr_passwd);
if ($wr_passwd != $write[wr_passwd]) {
alert("비밀번호가 틀립니다.");
}
}
}
부분에 비밀번호 체크부분이 있습니다.
87라인에 있는
if (!$member[mb_id] || ($is_admin && $w == 'u' && $member[mb_id] != $write[mb_id])) {
$is_name = true;
$is_passwd = true;
if ($default[de_use_email]) {
$is_email = true;
}
if ($default[de_use_homepage]) {
$is_homepage = true;
}
}
부분과 140라인부터 있는
} else if ($w == 'u') {
$passwd_required = "";
if (!$is_admin) {
if (!($member[mb_id] && $member[mb_id] == $write[mb_id])) {
$wr_passwd = sql_password($wr_passwd);
if ($wr_passwd != $write[wr_passwd]) {
alert("비밀번호가 틀립니다.");
}
}
}
부분에 비밀번호 체크부분이 있습니다.
현재 아이디를 관리자로 임명하면 모든게 다 패스되니깐 문제 없이 잘될듯 ^_^
아하 방금 생각난건데 간단하게 해결하는 방법 생각 나씀니다.
$oboard = '원하는 TABLE';
if($bo_table == '$oboard') {
$is_admin = $member[mb_id];
}
이런식으로 하면 다 패스될듯.. ㅋㅋㅋㅋㅋ
꽁수 짱이죠 ^_^
$oboard = '원하는 TABLE';
if($bo_table == '$oboard') {
$is_admin = $member[mb_id];
}
이런식으로 하면 다 패스될듯.. ㅋㅋㅋㅋㅋ
꽁수 짱이죠 ^_^
gbupdate.php 파일을 수정하시면 모든 업데이트에 대해서 수정이 됩니다.
쓰기와 수정이 동시에 이루어집니다.
이때 구분하는 변수는 $w 이며..
if ($w == '' || $w == 'u') {
if ($member[mb_level] < $board[bo_write_level]) alert('글을 쓸 권한이 없습니다.');
} else if ($w == 'r') {
if ($member[mb_level] < $board[bo_reply_level]) alert('글을 답변할 권한이 없습니다.');
} else if ($w == 'c') {
if ($member[mb_level] < $board[bo_comment_level]) alert('코멘트를 쓸 권한이 없습니다.');
} else {
alert('w 값이 제대로 넘어오지 않았습니다.');
}
변수의 값이 각각 u,r,c에 의해서 구분되어집니다.
하단에 보시면 282라인부터 다음과 같은 코드가 있습니다.
} else if ($w == 'u') {
if ($member[mb_id]) {
// 자신의 글이라면
if ($member[mb_id] == $wr[mb_id]) {
$mb_id = $member[mb_id];
$wr_name = $member[mb_name];
$wr_email = $member[mb_email];
$wr_homepage = $member[mb_homepage];
} else {
$mb_id = $wr[mb_id];
}
} else {
$mb_id = '';
}
이곳이 핵심인듯 싶네요..
또한 삭제와 마찬가지로 수정역시 하나의 코드로 끝나는것이 아니라..
이파일을 수정하였을때 다른 파일과 연계성이 무너질수 있으므로 주의하셔야 할것 같습니다. :)
쓰기와 수정이 동시에 이루어집니다.
이때 구분하는 변수는 $w 이며..
if ($w == '' || $w == 'u') {
if ($member[mb_level] < $board[bo_write_level]) alert('글을 쓸 권한이 없습니다.');
} else if ($w == 'r') {
if ($member[mb_level] < $board[bo_reply_level]) alert('글을 답변할 권한이 없습니다.');
} else if ($w == 'c') {
if ($member[mb_level] < $board[bo_comment_level]) alert('코멘트를 쓸 권한이 없습니다.');
} else {
alert('w 값이 제대로 넘어오지 않았습니다.');
}
변수의 값이 각각 u,r,c에 의해서 구분되어집니다.
하단에 보시면 282라인부터 다음과 같은 코드가 있습니다.
} else if ($w == 'u') {
if ($member[mb_id]) {
// 자신의 글이라면
if ($member[mb_id] == $wr[mb_id]) {
$mb_id = $member[mb_id];
$wr_name = $member[mb_name];
$wr_email = $member[mb_email];
$wr_homepage = $member[mb_homepage];
} else {
$mb_id = $wr[mb_id];
}
} else {
$mb_id = '';
}
이곳이 핵심인듯 싶네요..
또한 삭제와 마찬가지로 수정역시 하나의 코드로 끝나는것이 아니라..
이파일을 수정하였을때 다른 파일과 연계성이 무너질수 있으므로 주의하셔야 할것 같습니다. :)
수정할때.
gbform.php ==>> 수정폼 들어가기위한 레벨 체크 부분
gbupdate.php ==>> 수정폼에 디비에 저장해주는 부분
두군데 다 수정해야하죠..
gbform.php ==>> 수정폼 들어가기위한 레벨 체크 부분
gbupdate.php ==>> 수정폼에 디비에 저장해주는 부분
두군데 다 수정해야하죠..
$w 값이 u면 수정 '' 없다면 쓰기 r답변인가요 ㅋㅋㅋ 아무튼 이런식으로 되어 있죠.
$w == 'u' 는 수정이라는 뜻이죠.
이런부분으로 시작되는 부분을 다 수정하면 되죠.
$w == 'u' 는 수정이라는 뜻이죠.
이런부분으로 시작되는 부분을 다 수정하면 되죠.