にオーバーライドしました。最終的に、いくつかのセッションデータをデータベースに保存することができました。 新しい問題が発生しました。すべてのデータが保存されたら、ページを読み込むとき。 ページをリロードしてセッションに何か書き込むと、すでにセッションにあるすべてのデータがこの新しいデータに置き換えられます。これは、すべてのデータが新しいデータのために置き換えられていることを意味します。これはsession
にorder_id
が存在しないときにセッションにorder_id
を保存しているので問題が発生しています。カスタムセッションsave_handlerは現在の保存データをデータベース
これは、データをデータベースに書き込むコードです。そしてはい、それはに置き換えていると言います。しかし、これはカスタムハンドラであるため、実際にこのセッションにデータを追加して、すべてを更新することはできません。また、どのように私は新しいデータのために古いデータを交換することができます魔女はすでにセッションに存在しています。
データベースへの書き込みを処理するコード。
function _write($id, $data) {
$access = time();
$id = $this->session_db->real_escape_string($id);
$access = $this->session_db->real_escape_string($access);
$data = $this->session_db->real_escape_string($data);
$sql = "REPLACE INTO sessions VALUES ('$id', '$access', '$data')";
return $this->session_db->query($sql);
}
私はそれは常にすべてのデータを持っており、私のような何かをするとき、単一の値でデータを上書きしないようにセッション変数にsession_start()
直後にすべてのデータを入れて行うことができるものがあります:
$_SESSION['LAST_ACTIVITY'] = time(); ?
編集:私は直接session_start();
後にセッションをエコーしようとすると、また、それは私がエラー与え
Warning: session_start(): Failed to decode session object. Session has been destroyed in /var/www/vhosts/url/httpdocs/index.php on line 13
シリアライズされた文字列に何か問題がありますか?なぜこのエラーが出るのか分かりません。
ご協力いただきありがとうございます。