欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

请教一下setcookie的用法

程序员文章站 2024-02-10 16:57:10
...
如果我想让COOKIES永久保存
如何通过setcookie来实现 是给expire一个很大的值吗?
还有 如果想保存1个月 就是按30天算 60*60*24*30 还是有什么精确的计算方法?

回复讨论(解决方案)

cookie不能永久保存
至于你说的精确的方法不知道是指什么?

我的意思是
网上那些程序设置保存一个月的时候
只是粗略地用60*60*24*30 这样表达30天
还是会根据每个月份有几天 来计算
不过我估计是直接按30天算了
呵呵

晕。何必计较这么多。。。。

晕。何必计较这么多。。。。
cookie是保存在客户端的,用户清理缓存时,都清掉了。
计较这么多,不嫌累么!

晕。何必计较这么多。。。。
cookie是保存在客户端的,用户清理缓存时,都清掉了。
计较这么多,不嫌累么!
不是计较
刚学习PHP
所以来问问 呵呵

这个答案就是

你喜欢..

总之cookie是不能永久保存的,存东西,你要把数据存到数据库里。
cookie 你就存该用户信息的ID即可,需要时,到数据库里取。
方便,而且不产生漏洞。
还有存cookie,
重要的数据必须加密

60*60*24*30 是一个表达式,最终传入的参数是 2592000
这么写主要是便于阅读,一小时3600秒,一天24小时,一个月30天。
至于你说的如果考虑每月实际天数的话,就有点麻烦了,你可以搜索一下. PHP获取每月实际天数

bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )

expire Cookie 过期的时间。这是个 Unix 时间戳,即从 Unix 纪元开始的秒数。换而言之,通常用 time() 函数再加上秒数来设定 cookie 的失效期。或者用 mktime()来实现。 time()+60*60*24*30 将设定 cookie 30 天后失效。如果未设定,cookie 将会在会话结束后(一般是浏览器关闭)失效

这是在执行一次 setcookie 后的情况,如果用户每次访问时都执行一次的话,不就永久了吗?

60*60*24*30 是一个表达式,最终传入的参数是 2592000
这么写主要是便于阅读,一小时3600秒,一天24小时,一个月30天。
至于你说的如果考虑每月实际天数的话,就有点麻烦了,你可以搜索一下.PHP获取每月实际天数
我也觉得 还是30天来的方便

bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )

expire Cookie 过期的时间。这是个 Unix 时间戳,即从 Unix 纪元开始的秒数。换而言之,通常用 time() 函数再加上秒数来设定 cookie ……

如果cookies用来保存登陆信息的
每次都设置setcookie 那不是得登陆了才能设置么 相当于没COOKIES

你为什么一定要在登录后才写 cookie 呢?
为什么不可以在验证登录信息有效时也写 cookie 呢?

可以计算出每个月或者当前月的天数,当然了一般都是设置一个固定的天数,例如把一个月当成28或者30天,不然的话,你在27号设置保存一个月,难道28好就失效吗,显然是不成立的,所以你只需要将其设置成固定的30天就行了,而永久有效的话简单的cookie是不行的,除非用其它的方式,如数据库标识等等

function setCookies(name,value){	var name = "xifashui";   var Days = 30; //此 cookie 将被保存 30 天   exp.setTime(exp.getTime() + Days*24*60*60*1000);   document.cookie = name +"="+ escape(value) +";expires="+exp.toGMTString();alert("放入成功")}function getCookies(name){   var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));   if(arr != null)alert(unescape(arr[2]));}