非常に簡単な実験。カスタムセッションIDを使用してPHPセッションを永続化する方法
if (!isset($_SESSION)) {
session_id(random_string());
session_start();
}
echo session_id();
random_string()
単にランダムな20文字のA-Z、Z、0-9文字列を返す:私は含まれindex.php
が持っています。
if
文の前
session_start()
への呼び出しがないので、それは常に新しいセッションIDを生成しますこのページをリロードで
、および存在しないスーパーグローバル(再開)$_SESSION
。私は、スクリプトの先頭にsession_start()
への呼び出しを置けば
しかし、私は、カスタムIDを設定するため、session_start()
の呼び出しの前を発生することがある、カスタムのセッションIDを指定するための私のチャンスを失ってしまいました。
私はこれを理解できません。鶏/卵の問題。では、どのようにしてカスタム・セッションIDを正常に実装すれば、スーパー・グローバルがページ・ロードの間に生き続けるでしょうか?
PHPセッションは信頼性が低いと評されています。セッション用にデータベースを使用する方がよいでしょう。 – khuderm
したがって、ブラウザが閉じられるか、またはユーザーごとに同じセッションIDを保持したいですか? – Perumal