ページを Windows 上の EasyPHP から Linux サーバーに移動したところ、この新しい問題が発生しました。ページをリロードするか、リンクをクリックして、セッションでアクセスできるはずのページ (または別のページ) に戻ると、セッション情報が失われ、ユーザーがログアウトされます。
から改作されたこのコードのスニペットはW3
、問題を示しているようです。
<?php
//Thing1.php
session_start();
if (! isset ($_SESSION['views'])) $_SESSION['views']='first load';
else $_SESSION['views']='reloaded';
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
<br>
<a href="thing1.php">Reload this page</a>
</body>
</html>
EasyPHP では、最初は が表示されますが、更新Pageviews=first load
するかリンクをクリックして同じページに戻ると、常に と表示されますPageviews = reloaded
。
私のLinuxボックスでは、常に表示されますPageviews=first load
。$_SESSION
これは、常に空の配列を出力する場合と一致しています。
Linux ボックスは PHP 5.3.10-1unbuntu3.6 と Apache 2.2 を実行しています。EasyPHP には PHP 5.4.4 と Apache 2.4.2 があります。
ここで必要なのは、EasyPHP での動作です。Linux バージョンでも$_SESSION
変数を記憶するようにします。
ありがとう