2

html header Set-Cookie 函数是否接受秒过期?

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

$expireSeconds = time()+$expireSeconds;

注意:我不想使用 set cookie,因为我正在运行 php4 版本。php4 在 setcookie() 函数中也不支持 httponly

4

2 回答 2

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 回答
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 回答