2

htmlヘッダーのSet-Cookie関数は秒単位の有効期限を受け入れますか?

header( "Set-Cookie:". $cookieName."=".$sessId."; expires=".$expireSeconds."; sessionID=".$sessId.";path=".$path."; domain=".$domain."; httponly; secure);

$expireSeconds = time()+$expireSeconds;

注:php4バージョンを実行しているため、setcookieを使用したくありません。また、php4はsetcookie()関数でhttponlyをサポートしていません

4

2 に答える 2

1

ヘッダーを自分で作成する場合は、次の形式で日付を指定する必要があります。

DAY, DD-MMM-YYYY HH:MM:SS GMT
DAY
    The day of the week (Sun, Mon, Tue, Wed, Thu, Fri, Sat).
DD
    The day in the month (such as 01 for the first day of the month).
MMM
    The three-letter abbreviation for the month (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec).
YYYY
    The year.
HH
    The hour value in military time (22 would be 10:00 P.M., for example).
MM
    The minute value.
SS
    The second value.

ただし、PHPのsetcookie()関数を使用している場合、日付はUnixタイムスタンプである必要があります。mktime()を使用できます。time()+ 60 * 60 * 24 * 30は、Cookieが30日で期限切れになるように設定します。0に設定するか省略した場合、Cookieはセッションの終了時(ブラウザが閉じたとき)に期限切れになります。

于 2012-11-19T15:29:51.270 に答える
1

の適切な日付形式expiresは次のようなものです。

Mon, 19 Nov 2012 15:40:59 GMT

その形式は、次のスニペットで取得できます。

str_replace('+0000', 'GMT', gmdate('r'));

または:

gmdate('D, d M Y H:i:s T');

30日後の有効期限は、次の方法で実行できます。

$expires = str_replace('+0000', 'GMT', gmdate('r', strtotime('+30 days')));

max-age、Cookieの有効期限を(秒単位で)指定するために使用できます。ただし、ここで説明するように、これはすべてのブラウザ間で移植できるわけではありません。

于 2012-11-19T15:42:27.720 に答える