그래서 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
세션 변수가 다시 파괴되는 것처럼 보입니다. 나는 그런 일이 일어나기를 원하지 않는다. 그것을 해결하는 방법에 관해서 어떤 단서 ?? 어떤 도움을 많이 주시면 감사하겠습니다 ...
'session_start();'가 맨 위에 오면 조건부를 적용하십시오. 설정되지 않았다면, echo/뭔가를하십시오. 편집 : 또는, @ 존 컨데 말합니다; 그게 최선의 방법이야. –
'if (! isset ($ _ SESSION)) {'을 제거하십시오. 그냥 session_start(); 그게 당신이 필요한 전부입니다. –
페이지 상단에서 (출력 전에) 항상 session_start()를 호출해야합니다. – Cyclonecode