관리자 제외코드 봐주세요

관리자 제외코드 봐주세요

QA

관리자 제외코드 봐주세요

본문

제가 원하는건 관리자는 제외하고 회원은 자기글만 보이게 할려고 하는데 

아래코드 적용시켜면 관리자도 회원글목록 못보게 됩니다

목록이 안보이니 관리도 불가능하고 ㅠㅠ

 

if(!$is_admin) {

$wz_sql_search .= " mb_id = '$member[mb_id]'";

}

 

제가 원하는건 관리자는 전체목록 다 보이고 회원은 자기글 목록만 보일려고 하는데 

위에 소스 수정 어떻게 해야 할까요?

이 질문에 댓글 쓰기 :

답변 5

지금 위에 올려 놓으신 소스는

!$is_admin 즉 관리자가 아닐 경우 실행하는 의미입니다.

그러니 말씀하신 것 처럼 관리자는 제외하고 실행이 되는것이 맞습니다.

 

아니면 if ($member['mb_id'] != 'admin') 이런식으로 해보세요

전체 코드가 이렇게 됩니다 ㅠㅠ

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

$wz_sql_search = "";
if ($sql_search) {
    $wz_sql_search .= " and ";
}

if(!$is_admin) {

$wz_sql_search .= " mb_id = '$member[mb_id]'";

}

$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} {$wz_sql_search} ";
$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 {$sql_search} {$wz_sql_search} {$sql_order} limit {$from_record}, $page_rows ";
} 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 ";
}
?>

아래코드는 관리자가 아니라면 이라는 조건이 있거든요.

 

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 "; 
} 
?>

로 확인해보세요

이렇게 하면 관리자와 본인글 목록전체가 출력이 안됩니다 
 

원작님께서 올린 부분을 전부 올려드리겟읍니다

목록파일코어 /bbs/list.php

if ($sca || $stx) {
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_order} limit {$from_record}, $page_rows ";
} else {
    $sql = " select * from {$write_table} where wr_is_comment = 0 ";
    if(!empty($notice_array))
        $sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
    $sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}

@include_once($board_skin_path.'/list.query.php'); // wetoz : 조건절 커스터마이징.



@include_once($board_skin_path.'/list.query.php'); 를 한줄 추가하였습니다.


스킨파일에 추가 /skin/board/스킨/list.query.php 아래코드 추가

이렇게 된 자료인데 ㅠㅠ

오류가 나는 경우 인거 같네여

echo문으로 $sql 변수값의 내용을 찍어 가시면서 디버깅 해보세요. sql 쿼리문 where 조건에 and가 연속으로 들어가는 경우가 발생되어 오류가 나는거 같네여

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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