관리자 제외코드 봐주세요
본문
제가 원하는건 관리자는 제외하고 회원은 자기글만 보이게 할려고 하는데
아래코드 적용시켜면 관리자도 회원글목록 못보게 됩니다
목록이 안보이니 관리도 불가능하고 ㅠㅠ
if(!$is_admin) {
$wz_sql_search .= " mb_id = '$member[mb_id]'";
}
제가 원하는건 관리자는 전체목록 다 보이고 회원은 자기글 목록만 보일려고 하는데
위에 소스 수정 어떻게 해야 할까요?
답변 5
지금 위에 올려 놓으신 소스는
!$is_admin 즉 관리자가 아닐 경우 실행하는 의미입니다.
그러니 말씀하신 것 처럼 관리자는 제외하고 실행이 되는것이 맞습니다.
아니면 if ($member['mb_id'] != 'admin') 이런식으로 해보세요
아래코드는 관리자가 아니라면 이라는 조건이 있거든요.
if(!$is_admin) {
$wz_sql_search .= " and mb_id = '$member[mb_id]'";
}
이런식으로 안해서 안되는걸까요?
} else {
$sql = " select * from {$write_table} where wr_is_comment = 0 and {$wz_sql_search} ";
if(!empty($notice_array))
$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
$sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}
저 and 에러나지 않아요?
else 끝난 자리에 echo $sql 한번 찍어보세요. 그리고 나온걸 phpmyadmin 이나 기타 다른 DB 프로그램같은곳에 쿼리 넣는곳 있을거예요 거기에 바로 넣어보세요. 어떤 구문이나 어떤 부분에서 에러가 나는지 나올겁니다.
윗분 설명이라면 나와야 정상인데 말이죠
위에서 명시한 코드에서는
이상한부분이 있습니다.
1. $sql_search 가 어디서 정의되어있는지 모른는점
2. $wz_sql_search 는 무엇을 추가하려고 하는지 판단이 모호한점
위 두가지를 약간 개선해서
아래와 같이 코드를 수정합니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$wz_sql_search = "";
if ($sql_search) {
$wz_sql_search .= " and ";
}
if(!$is_admin) {
$add_query .= " and mb_id = '{$member['mb_id']}'";
}
$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE (1=1) {$wz_sql_search} {$sql_search} {$add_query} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
$total_page = ceil($total_count / $page_rows); // 전체 페이지 계산
if ($sca || $stx) {
$sql = " select distinct wr_parent from {$write_table} where {$wz_sql_search} {$sql_search} {$add_query} {$sql_order} limit {$from_record}, $page_rows ";
} else {
$sql = " select * from {$write_table} where wr_is_comment = 0 and {$wz_sql_search} {$sql_search} {$add_query}";
if(!empty($notice_array))
$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
$sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}
?>
로 확인해보세요
!-->오류가 나는 경우 인거 같네여
echo문으로 $sql 변수값의 내용을 찍어 가시면서 디버깅 해보세요. sql 쿼리문 where 조건에 and가 연속으로 들어가는 경우가 발생되어 오류가 나는거 같네여