특정 권한만 회원검색 기능을 이용하게 하고 싶습니다.
본문
제 커뮤니티 최 상단에 회원검색 버튼을 만들었습니다. 그 버튼은 bbs/write_id.php 로 링크를 걸어놔서 회원검색을 할 수 있습니다.
그런데 이 버튼이 모든 회원들한테 보여질 순 있어도 특정 회원 또는 특정 권한의 회원들만 이용하게 할 수는 없을까요?
그외의 회원들은 누르면 권한이 없다고 팝업이 뜨게 한다던가....
제가 초보라서...고수님들 답변 부탁드려요
밑에는 write_id.php 의 소스입니다.
<?
include_once("./_common.php");
include_once("./_common.php");
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if (!$is_member) alert_close("회원만 접속가능한 화면 입니다");
if ($sname) {
switch ($sfl) {
case "mb_nick" : $search_sql = " mb_nick like '%$sname%' ";
$order_sql = " order by mb_nick"; break;
case "mb_name" : $search_sql = " mb_name like '%$sname%' ";
$order_sql = " order by mb_name"; break;
case "mb_id" : $search_sql = " mb_id like '%$sname%' ";
$order_sql = " order by mb_id"; break;
case "mb_all" : $search_sql = " mb_nick like '%$sname%' or mb_id like '%$sname%' or mb_name like '%$sname%' ";
$order_sql = " order by mb_id"; break;
default : $search_sql = " 1 ";
}
$sql = " select count(*) as cnt from $g4[member_table] where ( mb_leave_date = '' and mb_nick != '[삭제됨]' ) and ( $search_sql ) ";
$result = sql_fetch($sql);
$total_count = $result[cnt];
switch ($sfl) {
case "mb_nick" : $search_sql = " mb_nick like '%$sname%' ";
$order_sql = " order by mb_nick"; break;
case "mb_name" : $search_sql = " mb_name like '%$sname%' ";
$order_sql = " order by mb_name"; break;
case "mb_id" : $search_sql = " mb_id like '%$sname%' ";
$order_sql = " order by mb_id"; break;
case "mb_all" : $search_sql = " mb_nick like '%$sname%' or mb_id like '%$sname%' or mb_name like '%$sname%' ";
$order_sql = " order by mb_id"; break;
default : $search_sql = " 1 ";
}
$sql = " select count(*) as cnt from $g4[member_table] where ( mb_leave_date = '' and mb_nick != '[삭제됨]' ) and ( $search_sql ) ";
$result = sql_fetch($sql);
$total_count = $result[cnt];
$one_rows = 10; // 한페이지의 라인수
$total_page = ceil($total_count / $one_rows); // 전체 페이지 계산
if ($page == "") { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $one_rows; // 시작 열을 구함
$to_record = $from_record + $one_rows ;
$total_page = ceil($total_count / $one_rows); // 전체 페이지 계산
if ($page == "") { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $one_rows; // 시작 열을 구함
$to_record = $from_record + $one_rows ;
$sql = " select * from $g4[member_table] where ( mb_leave_date = '' and mb_nick != '[삭제됨]' )and ( $search_sql ) $order_sql limit $from_record, $one_rows";
$result = sql_query($sql);
$search_count = mysql_num_rows($result);
if ($search_count > 0) {
for ($i=0; $row=mysql_fetch_array($result); $i++) {
$list[$i]->id = "$row[mb_id]";
$list[$i]->name = $row[mb_name];
$list[$i]->nick = $row[mb_nick];
$list[$i]->mb_open = $row[mb_open];
}
} else {
alert("찾으시는 회원정보가 없습니다.");
}
mysql_free_result($result);
}
$result = sql_query($sql);
$search_count = mysql_num_rows($result);
if ($search_count > 0) {
for ($i=0; $row=mysql_fetch_array($result); $i++) {
$list[$i]->id = "$row[mb_id]";
$list[$i]->name = $row[mb_name];
$list[$i]->nick = $row[mb_nick];
$list[$i]->mb_open = $row[mb_open];
}
} else {
alert("찾으시는 회원정보가 없습니다.");
}
mysql_free_result($result);
}
$g4[title] = "사용자ID 검색";
include_once("$g4[path]/head.sub.php");
?>
include_once("$g4[path]/head.sub.php");
?>
<style type="text/css">
<!--
.style5 {color: #333333;
font-weight: bold;
}
-->
</style>
<!--
.style5 {color: #333333;
font-weight: bold;
}
-->
</style>
<table width=100% border=0 cellspacing=0 cellpadding=0>
<form name=frmid method=get autocomplete=off>
<input type=hidden name=frm_name value='<?=$frm_name?>'>
<input type=hidden name=ss_id value='<?=$ss_id?>'>
<tr>
<td width=14 bgcolor="eeeeee"></td>
<td height=30 colspan=2 valign=bottom bgcolor="eeeeee"><table width="100%" height="30" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="25"><img src="<?=$g4[bbs_img_path]?>/memo_icon07.gif" width="19" height="19" /></td>
<td><span class="style5">친구찾기</span></td>
</tr>
</table></td>
</tr>
<tr>
<td height="2" colspan="3" bgcolor="#d9d9d9"></td>
</tr>
<tr>
<td height="3" colspan="3"></td>
</tr>
<tr>
<td></td>
<td height=20 colspan=2 valign=bottom>회원정보를 입력하세요 (2자 이상)</td>
</tr>
<form name=frmid method=get autocomplete=off>
<input type=hidden name=frm_name value='<?=$frm_name?>'>
<input type=hidden name=ss_id value='<?=$ss_id?>'>
<tr>
<td width=14 bgcolor="eeeeee"></td>
<td height=30 colspan=2 valign=bottom bgcolor="eeeeee"><table width="100%" height="30" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="25"><img src="<?=$g4[bbs_img_path]?>/memo_icon07.gif" width="19" height="19" /></td>
<td><span class="style5">친구찾기</span></td>
</tr>
</table></td>
</tr>
<tr>
<td height="2" colspan="3" bgcolor="#d9d9d9"></td>
</tr>
<tr>
<td height="3" colspan="3"></td>
</tr>
<tr>
<td></td>
<td height=20 colspan=2 valign=bottom>회원정보를 입력하세요 (2자 이상)</td>
</tr>
<tr>
<td height="5" colspan="3"></td>
</tr>
<tr>
<td></td>
<td width=1></td>
<td>
<select name=sfl>
<option value='mb_all'>닉+이름+아이디</option>
<option value='mb_nick'>닉네임</option>
<option value='mb_name'>이름</option>
<option value='mb_id'>아이디</option>
</select>
<input type=text name=sname value='<?=$sname?>' required minlength=2 itemname='회원이름' size=14> <input type=image src='<?=$g4[bbs_img_path]?>/search.gif' border=0 align=absmiddle></td>
</tr>
<tr>
<td height=10 colspan=3></td>
</tr>
</table>
<td height="5" colspan="3"></td>
</tr>
<tr>
<td></td>
<td width=1></td>
<td>
<select name=sfl>
<option value='mb_all'>닉+이름+아이디</option>
<option value='mb_nick'>닉네임</option>
<option value='mb_name'>이름</option>
<option value='mb_id'>아이디</option>
</select>
<input type=text name=sname value='<?=$sname?>' required minlength=2 itemname='회원이름' size=14> <input type=image src='<?=$g4[bbs_img_path]?>/search.gif' border=0 align=absmiddle></td>
</tr>
<tr>
<td height=10 colspan=3></td>
</tr>
</table>
<!-- 검색결과 여기서부터 -->
<script type="text/javascript">
document.frmid.sname.focus();
</script>
<script type="text/javascript">
document.frmid.sname.focus();
</script>
<? if ($search_count > 0) { ?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td>
<td>
<table width=100% cellpadding=0 cellspacing=0>
<tr>
<td height=23 valign=top colspan=2><b>총 <?=$total_count?>명</b> (아이디/닉네임을 누르면 선택됩니다)</td>
</tr>
</table>
<table width=100% cellpadding=0 cellspacing=0>
<colgroup width="100">
</colgroup>
<colgroup width="">
</colgroup>
<colgroup width="50">
</colgroup>
<tr>
<td height=2 align="center" bgcolor="d9d9d9" colspan=3></td>
</tr>
<tr>
<td height=23 >아이디</td><td>닉네임</td><td>정보보기</td>
</tr>
<tr>
<td height=2 align="center" bgcolor="d9d9d9" colspan=3></td>
</tr>
<?
for ($i=0; $i<count($list); $i++)
{
echo "
<tr>
<td height=25>
<a href=javascript:setid('{$list[$i]->name}','{$list[$i]->id}')>{$list[$i]->id}</a>
</td>
<td>
<a href=javascript:setid('{$list[$i]->name}','{$list[$i]->id}')>{$list[$i]->nick}</a>
</td>";
if ($list[$i]->mb_open == 1)
$msg = "<a href=\"javascript:;\" onclick=\"win_profile('" . $list[$i]->id . "')\">정보보기</a>";
else
$msg = "비공개";
echo "
<td>{$msg}</td>";
echo "
</tr>
<tr><td height=1 bgcolor=b4c9dd colspan=3></td></tr>\n";
}
?>
<tr>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td>
<td>
<table width=100% cellpadding=0 cellspacing=0>
<tr>
<td height=23 valign=top colspan=2><b>총 <?=$total_count?>명</b> (아이디/닉네임을 누르면 선택됩니다)</td>
</tr>
</table>
<table width=100% cellpadding=0 cellspacing=0>
<colgroup width="100">
</colgroup>
<colgroup width="">
</colgroup>
<colgroup width="50">
</colgroup>
<tr>
<td height=2 align="center" bgcolor="d9d9d9" colspan=3></td>
</tr>
<tr>
<td height=23 >아이디</td><td>닉네임</td><td>정보보기</td>
</tr>
<tr>
<td height=2 align="center" bgcolor="d9d9d9" colspan=3></td>
</tr>
<?
for ($i=0; $i<count($list); $i++)
{
echo "
<tr>
<td height=25>
<a href=javascript:setid('{$list[$i]->name}','{$list[$i]->id}')>{$list[$i]->id}</a>
</td>
<td>
<a href=javascript:setid('{$list[$i]->name}','{$list[$i]->id}')>{$list[$i]->nick}</a>
</td>";
if ($list[$i]->mb_open == 1)
$msg = "<a href=\"javascript:;\" onclick=\"win_profile('" . $list[$i]->id . "')\">정보보기</a>";
else
$msg = "비공개";
echo "
<td>{$msg}</td>";
echo "
</tr>
<tr><td height=1 bgcolor=b4c9dd colspan=3></td></tr>\n";
}
?>
<tr>
</table>
<table width=100% cellpadding=0 cellspacing=0>
<tr>
<td height=10 align="center"></td>
</tr>
<tr>
<td>
<?
$page = get_paging($config[cf_write_pages], $page, $total_page, "?frm_name=$frm_name&ss_id=$ss_id&sname=$sname&sfl=$sfl&page=");
echo "$page";
?>
</td>
</tr>
<tr>
<td height=10 align="center"></td>
</tr>
<tr>
<td height=23 align="center">
<a href="javascript:window.close();"><img src="<?=$g4[bbs_img_path]?>/close.gif" border="0" /></a>
</td>
</tr>
</table>
<td width="20">
</tr></form>
</table>
<? } ?>
<tr>
<td height=10 align="center"></td>
</tr>
<tr>
<td>
<?
$page = get_paging($config[cf_write_pages], $page, $total_page, "?frm_name=$frm_name&ss_id=$ss_id&sname=$sname&sfl=$sfl&page=");
echo "$page";
?>
</td>
</tr>
<tr>
<td height=10 align="center"></td>
</tr>
<tr>
<td height=23 align="center">
<a href="javascript:window.close();"><img src="<?=$g4[bbs_img_path]?>/close.gif" border="0" /></a>
</td>
</tr>
</table>
<td width="20">
</tr></form>
</table>
<? } ?>
<script type="text/javascript">
if ('<?=$sfl?>') document.frmid.sfl.value = '<?=$sfl?>';
function setid(sname, sid)
{
var ov = top.opener.document.<?=$frm_name?>.<?=$ss_id?>.value;
var of = top.opener.document.<?=$frm_name?>.<?=$ss_id?>;
{
var ov = top.opener.document.<?=$frm_name?>.<?=$ss_id?>.value;
var of = top.opener.document.<?=$frm_name?>.<?=$ss_id?>;
if(ov.length>0) {
of.value = ov + "," + sid;
}else{
of.value = sid;
}
of.value = ov + "," + sid;
}else{
of.value = sid;
}
top.opener.focus();
top.close();
return false;
}
</script>
top.close();
return false;
}
</script>
<?
include_once("$g4[path]/tail.sub.php");
?>
include_once("$g4[path]/tail.sub.php");
?>
답변 2
3번째 줄에 있는
if (!$is_member) alert_close("회원만 접속가능한 화면 입니다");
if (!$is_member) alert_close("회원만 접속가능한 화면 입니다");
위 문구를 아래처럼
if ($member[mb_level] < 5) alert_close("검색 권한이 없습니다."); // 5등급 이하는 검색불가
이렇게만 적어주시면 간단히 될 거 같은데요.
많은 도움이 되었습니다. 감사합니다.
답변을 작성하시기 전에 로그인 해주세요.