私はPHPセッションで問題を解決しようと数日間、スタックオーバーフローを含むインターネットを見回しました。 1つは、私はチュートリアルのほとんどが「ここにコードがあり、それを使用してください」と言っていることに気づいた。そうではありません。さらに、私が見つけたすべての問題/答えは、ページを切り替えるか、リフレッシュしたときに失われる情報のようで、これらのどれも私に当てはまりません。PHP:セッションファイルにデータがありません
$ _SESSIONのデータは、どのページに関係なく保存/ロードされています。私の問題は、私がサーバー上のセッションファイルを見ると、そこにデータがないということです。さらに、セッションを破棄したり変数を設定解除したりすると、情報はまだ保存され、次回$ _SESSIONにアクセスすると古い情報が取得されます。
<?php
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
echo $_SESSION['count'];
?>
これは、ページ上のすべてのコードである(ここで閲覧可能に:)
は、私は非常に簡単なスクリプトを作成して自分のサーバー上のセッションの動作をトラブルシューティングします。このページがリフレッシュされるたびに、空白の新しいセッションファイルがサーバー上の指定されたディレクトリに保存され、カウンタは増加しません。詳細情報:
ホスティングGoDaddyの共有にホストされている - のLinux OS、私はすぐに、一時的に参照可能であることをphpsessionsディレクトリのアクセス許可を更新します
:PHPがインストールに関する情報については
。 ()
あなたの中には、session_start()の呼び出しに関するメモが残っています。私は自分のサイト(gnerb.com/phpinfo.php)にphpinfo.phpへのリンクを投稿し、session.auto_startが有効であることを示しているので、session_start()の呼び出しは必要ないことを強調したいと思います。 - すべての0秒前編集 – gNerb
さらに、javascript:alert(document.cookie);を使用します。セッションに割り当てられたセッションIDを返します。問題は、セッションクッキーがビューアブラウザに送信されても、ページが更新されるたびにサーバーが新しいセッションを開始していることです。 – gNerb
もう1つのコメント:セッションファイルを見ることができるようにphpsessionsディレクトリを一時的に閲覧できるようにしました。問題を再現するには、あるタブでhttp://www.gnerb.com/count.php、別のタブでhttp://www.gnerb.com/phpsessionsをご覧ください。カウントページをリフレッシュし、ディレクトリリストをリフレッシュして繰り返します。各リフレッシュは、最初の訪問時に視聴者に与えられたセッションIDに関連するセッションをロードする代わりに、セッションファイルを作成/保存する。 – gNerb