日期:2014-05-17  浏览次数:20472 次

php cookie问题???
看到网站有类似于这样的自动登录功能,我也想实现,在网上搜了一下cookie,也基本了解了,但有几个方面还是不明白,麻烦各位大牛能指点一二,小弟先在此谢过了;
1:我网站有个session,里面保存的是用户id,本来想做个隐藏表单,在用户登录时就将此id和用户名,密码三个信息都提交过去,然后判断是否有cookie,没有就写入,但后来想想,如果只有用户名和密码,不是照样可以查询出来id嘛,那我还有没有必要多弄个这个呢???

2:我看了一下人家网站的cookie,里面貌似用到了加密,看不懂,于是我就纠结了。比如说用md5()加密的话,密码数据库本来就是md5()的,那用户名呢??怎么校验是否正确啊??md5()貌似不能逆向解密的吧???

3:保存用户名和密码一般是用两个cookie吗??是保存在一个文件中的吗??

请各位说详细点,小弟在这方面是个小白,最好是说一下你们平常写类似于这样“自动登录”的流程,好让小弟有个思路,再次谢谢了

------解决方案--------------------
所谓“自动登录”就是已登录就不要再登录
这是在 cookie 中保存有历史登录信息,cookie有一个失效期,凡是没有超过时效期的内容都将随http请求一起传递到web服务器
如果网站允许“自动登录”,那么就是先判断$_COOKIE中是否存在该信息
一个网站只会在浏览器中产生一个cookie,是否保留要看失效期

cookie总是以明文方式(虽然可能是所谓的“密文”)在网络中传递

存放在互联网中的内容就是给人看的,如果你不想给人看,就不要放到网站中

------解决方案--------------------
自动登录作法很多,安全性能够保障的情况下,性能也没有问题就可以了。

1,普通SESSION机制,只不过设置了SESSION保存期更长,设置SESSION COOKIE的生命期更长。
2,自定义不可以逆的COOKIE,其实就是做签名,服务端做好相关记录即可,数据库 or 文件?随意。服务端应当做好程序逻辑,首次检测自动登录COOKIE后便应该以生命期较短的SESSION取代它,方便使用。