2014-03-12 6 views
1

현재이 권한을 사용하여 사용자의 사용 권한을 확인합니다. 사용자가 로그인 한 경우 파일을 표시하고 DIR을 나열합니다. 사용자가 로그인하지 않은 경우 표시되는 로그인 화면과 함께 잘 작동합니다.Else 절이 예상대로 작동하지 않습니다.

제품이 사용자 소유가 아닌 경우 (즉 권한이 레벨 3이 아님) 브로셔에 자동으로 링크됩니다. 사용자에게 보낼 수있는 헤더 설정이 있지만 원하는대로 작동하지 않습니다.

는 지금은 무엇을로드 페이지하지만 DIV (따라서 이름이 통과했다 있는지 확인하기 위해 F12 디버그를 확인하기 위해) 나는 무엇을 놓치고

를 전달하지 않는 이유는 무엇입니까?

p.s. PHP를 로그 오류를 표시하지

- 업데이트 -

통해 사라와 IF 문이 잘못된 일에 부착 된 경우 볼 수있는 섹션을 주석, 현재 아무것도 여전히 점점되지 같은 문제

<?php 

if (!securePage($_SERVER['PHP_SELF'])){die();} 
$parts = parse_url($_SERVER["REQUEST_URI"]); 
$page_name = basename($parts['path']); 

//Links for logged in user 
if(isUserLoggedIn()) { 

    //Links for permission level 3 (BOF) 

    if ($loggedInUser->checkPermission(array(3))){ 
     if ($handle = opendir('CD500/')) { 
      while (false !== ($file = readdir($handle))) 
       { 
        if ($file != '.' && $file != '..'){ 
         $thelist .= '<a href="/CD500/'.$file.'" target="_blank" >'.$file.'</a></br>'; 
        } 
       } 

      closedir($handle); 


      echo " 
         <div id='output'> 
         List of help files:</div> 
         <div id='List'> 
       $thelist "; 
     } 

     else { 

      echo " asdfasdfasdfadf "; 

     } 

    } 

    ?> 

    <div id='default'> 
    <?php } else { ?> 

<li><a class="<?php echo ($page_name=='login.php')?'selected':'';?>" href="login.php">Login</a></li> 
    <li><a class="<?php echo ($page_name=='register.php')?'selected':'';?>" href="register.php">Register</a></li> 
    <li><a class="<?php echo ($page_name=='forgot-password.php')?'selected':'';?>" href="forgot-password.php">Forgot Password</a></li> 
    <?php } ?></div> 
+0

여기서'$ loggedInUser'를 (를) 설정합니까? – Barmar

+0

적절한 들여 쓰기로 볼 수 있듯이'else ='는'.. = opendir (..)'에 적용되고'checkPermission()'에는 적용되지 않습니다! – kero

+0

@kingkero 아아 그래, 그걸 고칠 수있는 가장 좋은 방법은? 그 로그인 페이지에 대한 설정은 – Marriott81

답변

1

문제는 사용자 로그인을 확인하는 첫 번째 if 문에 속하지 않는 else 절에 있습니다. 또한 조건부로 일부 html을 인쇄해야하는 시점에서 코드를 약간 변경했습니다. 다음을 시도하십시오.

<?php 

if (!securePage($_SERVER['PHP_SELF'])){die();} 
$parts = parse_url($_SERVER["REQUEST_URI"]); 
$page_name = basename($parts['path']); 

//Links for logged in user 
if(isUserLoggedIn()) { 

    //Links for permission level 3 (BOF) 
    if ($loggedInUser->checkPermission(array(3))){ 

     if ($handle = opendir('CD500/')) { 

      while (false !== ($file = readdir($handle))){ 
       if ($file != '.' && $file != '..'){ 
        $thelist .= '<a href="/CD500/'.$file.'" target="_blank" >'.$file.'</a></br>'; 
       } 
      } 

      closedir($handle); ?> 

      <?php if($thelist): ?> 
       <div id='output'> 
       List of help files: 
       </div> 

       <div id='List'> 
        <?php echo $thelist; ?> 
       </div> 
      <?php endif; ?> 

<?php } 

    } else { 
     header('Location: http://www.yoursite.com/new_page.html') ; 
    } 

} else { ?> 

<div> 
    <li><a class="<?php echo ($page_name=='login.php')?'selected':'';?>" href="login.php">Login</a></li> 
    <li><a class="<?php echo ($page_name=='register.php')?'selected':'';?>" href="register.php">Register</a></li> 
    <li><a class="<?php echo ($page_name=='forgot-password.php')?'selected':'';?>" href="forgot-password.php">Forgot Password</a></li> 
</div> 

<?php } ?> 
+0

그것을 해결하는 대단히 감사합니다 :) – Marriott81

관련 문제