2014-11-25 2 views
1

그래서 PHP로 세션을 추가하려고했습니다. 내 웹 사이트가 index.php에 2 페이지가와의 index.php에서 스크립트 page.phpPHP 세션이 홈페이지에서 작동하지 않습니다.

<?php 
if(!isset($_SESSION)){ 
    session_start(); 
} 
if (isset($_SESSION['counter'])) { 
    $_SESSION['counter']++; 
} else { 
    $_SESSION['counter'] = 1; 
} 
echo $_SESSION['counter']."<br>"; 
?> 
<html> 
<body> 
<a href="page.php">Go to page</a> 
</body> 
</html> 

이고 내가 index.php를 열 때 page.php에서 스크립트가

<?php 
if(!isset($_SESSION)){ 
    session_start(); 
} 
if (isset($_SESSION['counter'])) { 
    $_SESSION['counter']++; 
} else { 
    $_SESSION['counter'] = 1; 
} 
echo $_SESSION['counter']."<br>"; 
?> 
<html> 
<body> 
<a href="index.php">Go to index</a> 
</body> 
</html> 

, 그것은 인쇄 카운터를 1로 설정합니다. 몇 번 리로드하고 카운터가 잘 증가합니다. 그런 다음, page.php에 가면 counter (index.php + 1에 마지막으로 표시되는 값)의 올바른 값이 표시됩니다. 그 페이지를 몇 번 다시 불러 오면 카운터가 여전히 적절하게 증가합니다. 하지만, 지금 index.php를 실행하면, 카운터가 1로 표시됩니다. 여기서 page.php에 표시된 값을 표시해야합니다. + 1

세션 변수가 다시 파괴되는 것처럼 보입니다. 나는 그런 일이 일어나기를 원하지 않는다. 그것을 해결하는 방법에 관해서 어떤 단서 ?? 어떤 도움을 많이 주시면 감사하겠습니다 ...

+1

'session_start();'가 맨 위에 오면 조건부를 적용하십시오. 설정되지 않았다면, echo/뭔가를하십시오. 편집 : 또는, @ 존 컨데 말합니다; 그게 최선의 방법이야. –

+2

'if (! isset ($ _ SESSION)) {'을 제거하십시오. 그냥 session_start(); 그게 당신이 필요한 전부입니다. –

+0

페이지 상단에서 (출력 전에) 항상 session_start()를 호출해야합니다. – Cyclonecode

답변

1

$_SESSION을 사용하기 전에 을 입력해야합니다. 어떤 페이지가 $_SESSION 일 필요가있는 페이지의 상단에 session_start();을 작성하십시오. 세션을 시작하려면 page.php & index.php 페이지를 사용하십시오. $_SESSION & isset()을 사용하여 세션을 시작할 필요가 없습니다. 다음과 같은 것 :

session_start(); 
if (isset($_SESSION['counter'])) { 
    $_SESSION['counter']++; 
} else { 
    $_SESSION['counter'] = 1; 
} 
echo $_SESSION['counter']."<br>"; 
+0

nope. 여전히 작동하지 않습니다 –

+0

'page.php'와'index.php' 두 페이지를 모두 변경 했습니까? – MH2K9

+0

예 두 페이지를 모두 변경했습니다. –

관련 문제