테스트 사이트 - 개발 중인 베타 버전입니다

관리자 제외코드 봐주세요 채택완료

너나잘해 6년 전 조회 1,862

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

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

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

 

if(!$is_admin) {

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

}

 

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

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

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

kam
6년 전

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

너나잘해
6년 전
제가 퀴리문을 몰라서 예전에 메모해놓은걸 그대로 적용햇더니 ㅠㅠ
and 가 연속으로 들어가는걸 어느부분 수정해야 할까요?

댓글을 작성하려면 로그인이 필요합니다.

플래토
6년 전

위에서 명시한 코드에서는

이상한부분이 있습니다.

 

1. $sql_search 가 어디서 정의되어있는지 모른는점

2. $wz_sql_search 는 무엇을 추가하려고 하는지 판단이 모호한점

 

위 두가지를 약간 개선해서

아래와 같이 코드를 수정합니다.

</p>

<p>

<?php 

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

<p>$wz_sql_search = ""; 

if ($sql_search) { 

    $wz_sql_search .= " and "; 

} </p>

<p>if(!$is_admin) { 

    $add_query .= " and mb_id = '{$member['mb_id']}'"; 

} </p>

<p>$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']; </p>

<p>$total_page  = ceil($total_count / $page_rows);  // 전체 페이지 계산 </p>

<p>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 "; 

} 

?></p>

<p>

로 확인해보세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

너나잘해
6년 전
이렇게 하면 관리자와 본인글 목록전체가 출력이 안됩니다


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

목록파일코어 /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 아래코드 추가

이렇게 된 자료인데 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

} 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 프로그램같은곳에 쿼리 넣는곳 있을거예요 거기에 바로 넣어보세요. 어떤 구문이나 어떤 부분에서 에러가 나는지 나올겁니다.

 

윗분 설명이라면 나와야 정상인데 말이죠

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

SLOOP
6년 전

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

 

if(!$is_admin) {

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

}

 

이런식으로 안해서 안되는걸까요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

너나잘해
6년 전
이렇게도 안되네요 ㅜㅜ

댓글을 작성하려면 로그인이 필요합니다.

그누위즈

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

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

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

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

너나잘해
6년 전
이것도 안 먹힙니다 ㅠㅠ
너나잘해
6년 전
전체 코드가 이렇게 됩니다 ㅠㅠ

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

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인