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

변수 다시한번 문의드립니다. 채택완료

히어1 10년 전 조회 3,545

일전에 올린 질문이 변수설정이 잘못 착각하여 다시한번 문의드립니다.

 

<?php if (!($list[$i]['wr_level'] && $list[$i]['wr_level'] > $member['mb_level'])) { //레벨제한?>
링크
<?php } //레벨제한?>​

 

$list[$i]['wr_level'] 에 값이 있고

$list[$i]['wr_level'] 값이 내 레벨보다 높으면 "링크"를 출력하지않는다.

단, 글쓴이거나 관리자는 위 변수 무시 

 

파란부분은 어떻게 처리하면 좋은지요?

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

답변 4개

채택된 답변
+20 포인트
10년 전

wr_level 이 없는 게시판이면 출력을 해야 한다는건가요 안해야 한다는 건가요

 

 

</p><pre><?php 
// wr_level 이 설정되지 않은 게시판에서는 링크를 그냥 출력함
if( !isset($list[$i]['wr_level']) || ($list[$i]['wr_level'] <= $member['mb_level']) || ($list[$i]['mb_id'] == $member['mb_id']) || $is_admin) 
{
    echo '<a href="'.$list[$i]['href'].'">링크</a>';
} 
?>

​<?php 
// wr_level 이 설정되지 않은 게시판에서는 링크를 출력하지 않음
if( isset($list[$i]['wr_level']) && (($list[$i]['wr_level'] || ($list[$i]['wr_level'] <= $member['mb_level']) || ($list[$i]['mb_id'] == $member['mb_id']) || $is_admin)) 
{
    echo '<a href="'.$list[$i]['href'].'">링크</a>';
} 
?>  
</pre><p>
 

 

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

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

슈퍼노비스
&lt;?php if (($list[$i][&#039;wr_level&#039;] &amp;&amp; $list[$i][&#039;wr_level&#039;] &lt;= $member[&#039;mb_level&#039;]) || ($list[$i][&#039;mb_id&#039;] == $member[&#039;mb_id&#039;] || $is_admin)) { //레벨제한?&gt;<br />
<br />
// 이곳에 보여줄 링크를 작성하세여<br />
&lt;?php } ?&gt;<br />
로그인 후 평가할 수 있습니다

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

10년 전

wr_level 이 회원레벨 보다 낮거나, 작성자이거나, 관리자이면 출력하면 되겠죠 

</p><p><?php 
if( ($list[$i]['wr_level'] <= $member['mb_level']) || ($list[$i]['mb_id'] == $member['mb_id']) || $is_admin) 
{
    echo '<a href="'.$list[$i]['href'].'">링크</a>';
} 
?> </p><p>
 

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

답변에 대한 댓글 1개

히어1
10년 전
$list[$i]['wr_level'] 에 값이 있을경우는 포함되야해요
다른게시판은 위 변수를 안쓸수도 있어서
그럼
앞에 $list[$i]['wr_level'] &&
이거만 추가하면 될까요?

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

슈퍼노비스
if문

을 보니 ! 이게 맨 앞에 붙어있네요

이것의 의미는 다음과 같겠습니다.

 

$list[$i]['wr_level'] 의 값이 없다

&& <== 그리고

$list[$i]['wr_level'] 의 값이 $member['mb_level'] 크지 않을때 가 될거 같습니다.

 

!이게 없었다면 클때 라는 의미가 되겠지만 부정의 의미인 '!' 이 붙었기 때문에 그 반대가 되겠네요

 

즉 , wr_level 값이 없고 회원의 레벨이 wr_level 보다 작을때 조건에 충족할텐데

이 조건문이 질문자님이 원하시는건지 모르겠지만

 

이러한 조건문이 과연 충족될수 있을까 하는 의문이 생기네요

 

결국 이 조건문을 충족하려면 회원레벨이 있고 wr_level 이 없을때만 충족되겠네요

 

앞에 ! 이거를 제거하신다면 wr_level 값이 있고 회원레벨이 wr_level 보다 작을때의 조건이 되겠네요

 

여기서 관리자거나 글쓴이인경우의 조건을 더 덧붙이려면

 

(근데 이 조건문 소스가 붙는것이 목록스킨인가요? list.skin.php인가요? 코멘트인가요?)

목록이라고 가정해보면

 

</p><p><?php if (($list[$i]['wr_level'] && $list[$i]['wr_level'] > $member['mb_level']) && ($list[$i]['mb_id'] != $member['mb_id'] && !$is_admin)) { //레벨제한?></p><p> </p><p style="margin-left: 40px;">echo "접근 권한이 없습니다.";</p><p><?php } ?></p><p>

 

이렇게 변형하시면 되겟는데요^^ 

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

답변에 대한 댓글 3개

히어1
10년 전
list.skin.php 에 사용을 할거구요.

<a href="<?php echo $list[$i]['href'] ?>">

$list[$i]['wr_level'] 에 값이 있고
$list[$i]['wr_level'] 값이 본인의 레벨보다 높다면 링크를 안보이게 할 예정입니다.
이때 본인이 쓴글이거나 관리자는 무조건 링크가 나와야겟죠......

변수 어렵네요 헤갈리기도 하고 ㅡㅜ
히어1
10년 전
<?php if (($list[$i]['wr_level'] && $list[$i]['wr_level'] > $member['mb_level']) && ($list[$i]['mb_id'] != $member['mb_id'] && !$is_admin)) { //레벨제한?>
<?php }else{?>
<a href="<?php echo $list[$i]['href'] ?>">
<?php } //레벨제한?>

이렇게 작성하니 되는데 <?php }else{?> 변수안만들고 할수는 없겠죠?
단지얍
10년 전
else를 안쓰시면 보안에 문제도 있을수 있으니
왠만하면 사용하시는게 좋아요

꼭 이글에만 국한된 답변은 아니구요 ㅎㅎ

아무튼 else없이 하시려면 조건부가 약간 수정이 필요할거에요
등호가 좀 바껴야겠죠

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

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

로그인