2013-08-08 2 views
1

내 웹 사이트에서 나는 페이지 상단에서 세션을 시작합니다. 내가 로그인 할 때까지 이제이 잘 작동AJAX가로드 된 페이지에서 세션 데이터 가져 오기

<div class="inner"> 
<ul id="nav" class="menu"> 
    <li class="first"><a href="#">Home</a></li> 
    <li><a href="#">Brugklas</a> 
     <ul> 
      <li class="child"><a href="#">123</a></li> 
      <li class="child"><a href="#">456</a></li> 
      <li class="child"><a href="#">789</a> 
       <ul> 
        <li><a href="#">Hello</a></li> 
        <li><a href="#">I&rsquo;m here!</a> 
         <ul> 
          <li><a href="#">Hello</a></li> 
          <li><a href="#">I&rsquo;m here!</a></li> 
         </ul> 
        </li> 
       </ul> 
      </li> 
     </ul> 
    </li> 
    <li><a href="#">Klas 2</a></li> 
    <li><a href="#">T&amp;O</a></li> 
    <li><a href="#">Algemeen</a></li> 
    <?php 
    if(isset($_SESSION['logged_in'])){ 
     echo '<li><a href="#">Portal</a></li>'; 
     echo '<li class="last"><a href="javascript:void(0);" onclick="logout();">Logout</a></li>'; 
    } else { 
     echo '<li class="last"><a href="javascript:void(0);" onclick="showLoginScreen();">Login</a></li>'; 
    } 
    ?> 
</ul> 

: 나중에 내가 탐색 모음을 포함 한 페이지에서, 이것은 전체 파일 (nav.php)입니다. (완전히 jQuery, AJAX 스타일로 완료) 로그인이 완료되면 바로. 업데이트 된 정보 (로그 아웃 링크 및 포털 링크)로 변경해야하기 때문에 AJAX를 통해 탐색 바를 다시로드합니다. 작동하지 않습니다. 최대한 빨리 nav.php 상단에 session_start();을 추가하면 작동하지만 세션이 이미 시작되었다는 PHP 오류가 발생합니다.

오류를 표시하지 않음으로써 해결할 수 있습니다. 이것은 @session_start();으로 끝나지만 내 눈에는 코드가 여전히 나쁩니다. 내 앞에 @이없는 문제를 해결하려면 어떻게해야합니까? session_start();

제 질문에 대한 답변을 드리겠습니다. 당신이 처음에 페이지를로드 할 때 nav.php

if (!isset($_SESSION)) {session_start();}

문제의 상단에

답변

2

넣어이 발생합니다. 세션을 시작하면 다시 세션을 시작하는 nav.php이 포함됩니다.

두 번째로 페이지를로드하면 해당 페이지가 상위 페이지와 독립적이며 세션을 다시 시작할 수 있습니다.

+0

감사합니다. Gert! 매력처럼 작동합니다! –

관련 문제