Heim >Backend-Entwicklung >PHP-Tutorial >服务器端删除了用户,怎么通知客户端浏览器删除cookie

服务器端删除了用户,怎么通知客户端浏览器删除cookie

WBOY
WBOYOriginal
2016-06-06 20:20:541568Durchsuche

假设一个论坛是通过cookie来记录用户是否登陆网站的,一个用户在论坛上不停狂发广告,现在我在服务器端删除了该用户,怎么通知到客户端删除登陆信息cookie?如果用户每次操作都要查询一次数据库该用户是否存在,那样效率实在太低了,有没有更好的方法?

回复内容:

假设一个论坛是通过cookie来记录用户是否登陆网站的,一个用户在论坛上不停狂发广告,现在我在服务器端删除了该用户,怎么通知到客户端删除登陆信息cookie?如果用户每次操作都要查询一次数据库该用户是否存在,那样效率实在太低了,有没有更好的方法?

1.自定义session id的生成方式。比如md5用户的uid。

<code>函数:session_id</code>

2.建议把session放到redis中,默认是在临时目录下,在操作删除用户时,到redis或临时目录下,把存放用户信息的session删除

<code>生成名称为:sess + 自定义的session_id</code>

3.客户端cookie带session_id来服务端查询时,便找不到信息,默认就是退出

<code>//代码
session_name("demo");
session_id("123");

session_start();
$_SESSION['one'] = 11;</code>

服务端生成文件
服务器端删除了用户,怎么通知客户端浏览器删除cookie

客户端生成的cookie
服务器端删除了用户,怎么通知客户端浏览器删除cookie

将token缓存到redis里面就可以避免查数据库了

你这个需求有点类似“黑名单用户”?
可以试试这样:删除用户时记录该账号到文件里做一个缓存文件,每次登录时检查该账号是否为“黑名单用户”。这样不用每次查询数据库。

查询一次,没有查询到用户就直接清除Cookie

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn