私は 2 日前、PHP セッションに関して非常に厄介な問題に遭遇しました。関数は、既存のセッションを再開するのではなく、新しいセッションを開始します。これはリロード時にも発生します。
私のphp.iniのセッションセクションは次のようになります。
Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn Off Off
session.cache_expire 180 180
session.cache_limiter no value no value
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 0 0
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies On On
session.use_trans_sid 1 1
私は Ubuntu サーバーを実行しており、www-data ユーザーは /tmp フォルダーに対する書き込み権限と読み取り権限を持っています。セッション ファイルは存在しますが、何らかの理由で新しいファイルを開始することを選択します。
OS : Ubuntu 12.04 PHP バージョン : 5.3.1 ウェブサーバー : Apache 2.2
提案やアドバイス、そしてもちろん、お時間をいただきありがとうございます。
[問題が解決しました]
問題は解決しました。Cookie ドメインを "example.com" (独自のドメインに置き換えます) に設定し、リダイレクト先を "www.exemple.com/bla" ではなく "exemple.com/bla/bla" にする必要がありました。 /bla".