- ベストアンサー
クッキーの有効期限の延長
PHPからクッキーの有効期限が1週間を切ったら延長(再登録)するにはどうしたらいいですか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
がると申します。 んっと…とりあえず文面からすると if (クッキーの有効期限が1週間を切ったら) { setcookie(延長した時間とかを指定) } という感じなのですが。 実際にはCookieの有効期限を取ることは、サーバサイドではムリなので、とりあえず常に setcookie(延長した時間とかを指定) のみで普通にいけると思うのですが。どの辺がわからないでしょうか?
その他の回答 (2)
- galluda
- ベストアンサー率35% (440/1242)
がるです。ちっと掘り下げて。 クライアントからサーバにCookieが渡ってくるときに、それはCookieという名前のヘッダで渡ってくるのですが、それは Cookie: name=value; name2=value2; name3=value3 というふうに、名前と値しか返って来ません。 そのために、Cookieの寿命を知るのは難しい、というお話になります。
お礼
クライアントに登録してある情報は名前と値しか、サーバ側に渡さないというクッキーの仕様の問題なのですね。 そうなるとサーバ側だけでどうにかできる問題ではなさそうですね。 そもそも有効期限はクライアントしか知る必要がない情報だし、毎回無駄なパケットを送ってもしょうがないですしね。 今回は見送ろうかと思います。 そもそもこのような処理を入れたかったのは、 有効期限がまだまだあるのに毎回クッキーを登録していると、もしクッキーOFFの方が来た場合、毎回注意文が出るのはよくないと思って、有効期限がまじかになったときだけ再登録するという風にしたかったのです。
補足
クッキーの仕様で確認したところ、指摘のとおり名前と値のペアをサーバへ送るとありました。 http://www.futomi.com/lecture/cookie/specification.html
- galluda
- ベストアンサー率35% (440/1242)
がると申します。 んっと…とりあえず if (クッキーの有効期限が1週間を切ったら) { setcookie(延長した時間とかを指定) } で普通にいけると思うのですが。どの辺がわからないでしょうか?
補足
質問をかえると、 「クライアントのクッキーの有効期限を知る方法」 です。
お礼
こんにちは。がるさん。 if (クッキーの有効期限が1週間を切ったら) { の部分をどう実装したらよいのかがわからないのです。 サーバ側でクライアントのクッキーの有効期限を知る手段はないのかな? > 実際にはCookieの有効期限を取ることは、サーバサイドではムリ やはり無理なのかな...?