2014-03-02 3 views
0

약간의 문제가 있습니다. 포함 된 파일에 $view을 얻을 수 없습니다. 제발 도와주세요, 내가 뭘해야할지 모르겠군요. else 상태가 좋기 때문에 Tamplates가 크게 변경됩니다. var_dump($view); 결과 :

Notice: Undefined variable: view in C:\xampp\htdocs\Accessories\adminpanel\tpl\main.php on line 26 
NULL 

의 index.php :

<?php  
    $view = empty($_GET['view']) ? 'indexPage' : $_GET['view']; 

    switch ($view) 
    { 

    } 

    if($view != "indexPage") 
    { 
     include "/tpl/main.php"; 
    } 
    else 
    { 
     include "/tpl/indexPage.php"; 
    } 
?> 

main.php :

<?php session_start(); ?> 
<!doctype html> 
<html lang="en-US"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Admin Panel</title> 
    <link rel="stylesheet" href="../css/style.css"/> 
</head> 
<body>  
    <div id="wrapper"> 
     <nav> 
      <ul id="category"> 
       <span>Hello, <?=$_SESSION['username'];?></span> 
       <li><a href="?view=addItem">Add Item | </a></li> 
       <li><a href="../lib/logout.php">Exit</a></li> 
      </ul> 
     </nav> 
     <article> 
      <?php 
       if(isset($view)) 
       { 
        include($_SERVER['DOCUMENT_ROOT'] . '/Accessories/adminpanel/tpl/pages/'. $view . '.php'); 
       } 
       else 
       { 
        include($_SERVER['DOCUMENT_ROOT'] . '/Accessories/adminpanel/tpl/pages/defaultPanel.php'); 
       } 
       // var_dump($view); 
      ?>  
     </article>  
    </div>  
</body> 
</html> 

UPDATE : 다른 웹 사이트를 쓸 때 나는 같은 일을 사용 , 그것은 근무 : 인덱스를. ph :

<?php 
    include 'catalog.php'; 

    $view = empty($_GET['view']) ? 'generalPage' : $_GET['view']; 
    $cat_name = empty($_GET['cat_name']) ? '' : $_GET['cat_name']; 

    switch ($view) 
    { 
     case('generalPage'): 
      $rand_goods = get_random_good(); 
      break; 
     case('categoryPage'): 
      if ($ids) $products = get_products($ids); 
      else $products = null; 
      break; 
     case('productPage'): 
      $product = $get_one_product; 
      break; 
    } 

    switch ($cat_name) 
    { 
     case('about'): 
      $about = get_about(); 
      break; 
    } 

    include($_SERVER['DOCUMENT_ROOT'] . '/Accessories/tpl/main.php');  
?> 
,210

main.php :

<!doctype html> 
<html lang="en-US"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Accessories</title> 
    <link rel="stylesheet" href="css/style.css"/> 
</head> 
<body>  
    <div id="wrapper"> 
     <header></header>  
     <div id="breadCrumbs"> 
      <?= $breadcrumbs; ?> 
     </div>  
     <nav> 
      <ul class="category"> 
       <li><a href="index.php">General</a></li> 
       <?php echo $categories_menu; ?> 
     </nav> 

     <article> 
      <?php 
       if ($cat_name == '') 
        include($_SERVER['DOCUMENT_ROOT'] . '/Accessories/tpl/pages/' . $view . '.php'); 
       else 
       { 
        include($_SERVER['DOCUMENT_ROOT'] . '/Accessories/tpl/pages/' . $cat_name . 'Page.php'); 
       } 
      ?> 
     </article> 
     <div class="clear"></div>  
     <footer> 
      <p id="copy">&copy 2014</p> 
     </footer> 
    </div> 
    <script type="text/javascript" src="js/jquery-2.1.0.min.js"></script> 
    <script type="text/javascript" src="js/jquery.accordion.js"></script> 
    <script type="text/javascript" src="js/jquery.cookie.js"></script> 
    <script> 
     $(document).ready(function() { 
      $(".category").dcAccordion(); 
     }); 
    </script> 
</body> 
</html> 
+0

없음 확실하지만, 난 당신이 세션에보기 변수를 저장할 필요가 있다고 생각합니다. index.php 파일에서. –

+0

main.php 페이지에서 $ view의 값을 설정하지 않았습니다. 당신이 페이지 index.php에서했던 것처럼 GET으로 보내면됩니다. 또는 main.php에서하는 것처럼 세션에 저장하십시오. index.php 페이지에서 세션을 시작한 다음 get에서 변수를 세션에 할당하십시오. $ _SESSION [ 'View'] = $ _GET [ 'view'];'그런 다음 main.php에서 세션의 값을 검색합니다. –

+0

'$ _GET [ 'view']'를 사용하면 제대로 작동하지만,'switch-case'를 사용할 때'cases'가 작동하지 않습니다. UPDATED question – vladja

답변

2

나는 문제가 당신의 변수 $ 뷰의 scope 생각합니다.

보십시오이 :

index.php를

<?php  
    $view = empty($_GET['view']) ? 'indexPage' : $_GET['view']; 



    if($view != "indexPage") 
    { 
     include "/tpl/main.php"; 
    } 
    else 
    { 
     include "/tpl/indexPage.php"; 
    } 
?> 

main.php

<?php session_start(); ?> 
<!doctype html> 
<html lang="en-US"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Admin Panel</title> 
    <link rel="stylesheet" href="../css/style.css"/> 
</head> 
<body> 

<div id="wrapper"> 
    <nav> 
     <ul id="category"> 
      <span>Hello, <?=$_SESSION['username'];?></span> 
      <li><a href="?view=addItem">Add Item | </a></li> 
      <li><a href="../lib/logout.php">Exit</a></li> 
     </ul> 
    </nav> 
    <article> 
      <?php 
      $view = $_GET['view']; 
      if(isset($view)){ 
       include($_SERVER['DOCUMENT_ROOT'] . '/Accessories/adminpanel/tpl/pages/'. $view . '.php'); 
      }else{ 
       include($_SERVER['DOCUMENT_ROOT'] . '/Accessories/adminpanel/tpl/pages/defaultPanel.php'); 
      } 
      echo var_dump($view); 
      ?> 

    </article> 

</div> 


</body> 
</html> 
+0

예, 작동하고 있으며 그것을 알고 있지만, 내 샘플 (업데이트 된 부분)에서'$ view = $ _GET [ 'view'];'...를 삽입해서는 안되기 때문에 그것을 사용하고 싶습니다. – vladja

관련 문제