2017-09-29 2 views
0

PHP 세션 문제로 인해 문제가 있습니다.PHP 세션 문제가 저장되지 않는 경우가 있습니다.

나는 세션을 시작하는 메인 페이지와 두 번째 페이지에 대한 링크가 있습니다. 페이지 (빵 부스러기)를 추적하여 세션에 저장합니다. 테스트 할 때 일부는 작동하지만 다른 사용자는 그렇지 않습니다 ... 문제가 보이지 않습니다.

페이지 1 : (index.php를)

<?php 
 

 
session_start(); 
 

 
if (!isset($_SESSION['kruimels'])){ 
 
    $_SESSION['kruimels']["home"]="index.php"); 
 
}else{ 
 
    unset($_SESSION['kruimels']); 
 
    array_push($_SESSION['kruimels']["home"]="index.php"); 
 
} 
 

 
?> 
 

 
<a href='sub.php?id=1'>item1</a> 
 
<a href='sub.php?id=2'>item2</a> 
 
<a href='sub.php?id=3'>item3</a> 
 
<a href='sub.php?id=4'>item4</a>

가 두 번째 페이지

: (sub.php가)

<?php 
 

 
session_start(); 
 

 
/* I get the name of the page by querying the DB...*/ 
 

 
if (isset($_SESSION['kruimels'])){ 
 
    $_SESSION['kruimels'][$nameOfPage]="sub.php?id=".$_GET['id']; 
 
} 
 

 
?> 
 

 
<?php 
 
foreach ($_SESSION['kruimels'] as $naam => $path) { 
 
    echo "<li><a href='$path'>$naam</a></li>"; 
 
} 
 
        
 
?>

이상한 것은이 , 일부 그것은 구원을 얻습니다. 가끔은 그렇지 않습니다 ... 문제가 보이지 않습니다 ...

도움 말? 인사말, Martijn

답변

0

이 세션을 시작할 필요가 없습니다. basename ($ _ SERVER [ 'REQUEST_URI']); 이 PHP의 기능. 그러면 현재 파일의 이름이 표시됩니다. 이 후 , 당신은 파일 이름을 가지고 지금 이것을 폭발 (.) 그리고 당신은 을 보여 그리고 나보다 모든 방문한 링크를 추적 할

$pagename = explode('.', basename($_SERVER['SCRIPT_NAME'])); 
       echo $pagename[0]; 
+0

코드 아래에 시도하여 원하는 목적지 에코. 하위 페이지에는 다른 ID가있는 서브 페이지에 대한 링크도 있습니다. 색인 -> 하위> 하위 -> ... 빵 부스러기를 좋아합니다. 하지만 때로는 (항상 그런 것은 아니지만) 인덱스 -> 서브 대신 서브 - 서브를 얻습니다. – martok

관련 문제