返回列表 发新帖

dede织梦data/cache文件夹里有admincat_1.inc

[复制链接] 0
回复
85
查看
打印 上一主题 下一主题
楼主
跳转到指定楼层
发表于 2019-9-18 11:36:20 | 只看该作者 回帖奖励 |倒序浏览 |?阅读模式
??在制作开发一个网站系统时,设计缓存功能是非常有必要的,例如,管理员登录后台需要把管理员的必要信息缓存到session中,在会员登录会员中心时也要把必要的会员信息缓存起来,还有其它的很多的地方需要缓存,缓存的目的只有一个就是减少对数据库查询,同时也减少了操作数据库带来的风险,并且程序查询硬盘的速度比查询数据库要快很多。

??所以,在我们开发制作一个网站系统时,对某些功能操作的信息进行缓存是非常有必要的。

??不同的网站系统在设计开发时可能缓存的内容不太相同,例如,商城平台跟一般的内容管理系统就有差别,像淘宝等商城一般都有购物车,一般我们选择完商品以后就需要把商品信息,以及会员信息进行缓存,这样如果万一用户没有马上购买商品,等下次再登录以后,购物车里面仍然有上次我们添加的商品,这里就用了cookie或session缓存。

??一般的系统是没有购物车的,但是,不同的网站系统缓存的内容有很多共同之处,而且不管是什么类型的网站要缓存的内容大同小异,缓存的方法也相差不大,正是这种差异比较小,我们可以研究织梦系统,看看织梦系统看看用了哪些缓存,在哪里设置了缓存信息,只要把这一个系统缓存搞明白了,这对以后我们做网站制作开发是非常有帮助的。

??下面以织梦系统为例子进行研究分析,以供我们在做网站制作开发时参考。

登录网站后台:

??1)后台登录用户信息写入session中。

? ? 在后台管理员或其它信息发布员登录后台时,验证码首先被写入到session中,这个session文件位置是:/data/sessions_x 中(x表示10位md5加密的字符串)

? ? 如下图所示:

file:///C:/uploads/allimg/181226/1-1Q226144T5L8.png

? ? 从上图可以看出在我们打开织梦系统后台时,并没有做什么操作,这个时候织梦系统就生成一个session缓存文件,放在文件夹sessions_2a49d22937里面,其中,2a49d22937是织梦系统用md5加密后取的前10位字符,session文件名
sess_o7b2uflnld0k8q6n1j44lbn1g6中后面的字符串o7b2uflnld0k8q6n1j44lbn1g6是cookie的PHPSESSID值。

? ? 在这个session文件里面已经有一个验证码了,正是我们打开系统后台时显示在验证码图片上面的字符,这是在我们打开后台时程序生成验证码时,同时把生成的验证码写入到了这个session文件里面。

? ? 并且,在织梦系统中这个验证码只在提交登录时验证使用,其后就不再使用了,这一点我们在“网站用户登录注册功能设计制作分析”教程中已经简单介绍了。

? ? 如果我们在制作开发一个网站系统时,也可以只在验证时使用,也可以设计成一直作为登录状态必须的内容,至于如何设计可以根据自己的需要进行设计。

??2)把登录成功的用户操作权限写入缓存文件中

? ?? ?缓存文件位置在:data/cache/admincat_1.inc

? ?? ?这个缓存文件admincat_1.inc,是系统自定义的,定义的代码是:$cacheFile = DEDEDATA.'/cache/admincat_'.$this->userID.'.inc';

? ?? ?文件里面的1指的是用户登录id。

? ?这个文件内容如下:

? ?


??这里面的内容保存的正是“当前”登录后台的用户在后台的操作权限,all表示最高权限,可以对后台内容进行任意操作,$admin_catalogs 的值表示可以操作的栏目,值为空数组表示可以对任何栏目进行操作。??

登录会员中心的缓存处理

??1)只把验证码写到session中

? ?会员在登录会员中心时,织梦系统只在服务器文件夹/data/sessions_x 中(x表示10位md5加密的字符串)的session文件中写入验证码。

? ?这一点与网站后台登录缓存的内容不同,网站后台是把后台管理员的信息缓存到session中,包括会员id、用户名等,而前台会员中心登录时只把验证码写在session文件中,验证码的原理根后台一样,只要刷新会员中心的登录框就会重新写一次验证码到session文件中。

??2)把用户入用户登录信息写入cookie中

? ? 当会员登录成功时,同时程序会把会员的信息也保存到cookie中,也就是保存到客户端中,这样可以在用户请求其它操作时可以识别是哪个用户的请求,具体内容如下:

Array(? ? [lastCid] => 1? ? [lastCid__ckMd5] => 5e800ac1aca8a583? ? [PHPSESSID] => v56a66dqm6b98lrruhjc7ujpd0? ? [_csrf_name_171b8d83] => ee35bdb952dbfe0fad2842bd6be4f4ee? ? [_csrf_name_171b8d83__ckMd5] => 8d50b1c765347cd9? ? [zm__ckMd5] => 9d71f16264c0749e? ? [DedeUserID] => 4? ? [DedeUserID__ckMd5] => 2f5b6035973418bf? ? [DedeLoginTime] => 1545795884? ? [DedeLoginTime__ckMd5] => 34c136b8783ce7c4)


??这个数组是打印的$_COOKIE里面的内容,其中,重要的信息是PHPSESSID、DedeUserID和登录时间DedeLoginTime,像登录时间当用户登录成功后,需要更新一下用户的在数据库表中的登录时间字段值。

??3)把会员登录信息写入到文件夹data\cache\memberlogin中

? ? 与后台登录一样,如果要实现用户登录后一直保持登录状态,则需要把当前登录的会员的信息写到session里面,来持会员一直处于登录状态,这些信息是保存在上面的文件夹中的,每登录一个会员就会在memberlogin中生成一个对应的缓存文件。

??如下图所示:


file:///C:/uploads/allimg/181226/1-1Q226145020623.png

??这个缓存文件保存的正是数据库表dede_memeber里面的重要的信息,连用户的密码都保存在这个文件里面了。

??因为注册的会员的数量非常多,所以,保存的会员的内容非常详细,而且,这个在memberlogin中的保存的会员缓存文件目录也比较深,这主要是为了区别不同的会员的需要。

会员注册时的缓存处理

??前台会员登录和注册都使用同一个验证码,并且,在注册时会把验证码信息写到session文件里面,这与后台登录处理验证码一样。

??当注册成功后织梦系统也会在data/cashe/memeberlogin/里面生成一个缓存文件,保存了用户的必要信息(这个可以根据自己开发制作的系统的需要进行定义哪些内容需要写到缓存文件里面)。

??总结:在我们进行网站系统制作开发时,必然会用到缓存,这里总组一下织梦系统的注册和登录功能的缓存的使用,只要使用验证码先缓存到session,验证完后就不用了;注册和登录的会员,若是系统后台会员,则需要缓存到单独的文件目录,例如,织梦系统缓存到data/sess_xxxxxxxxxx目录里面,但是密码不要保存;如果是前端网站会员中心会员,则需要在单独的目录缓存会员登录,注册信息,包括用户密码,并且,把用户的重要信息缓存到cookie中,即保存到客户端。

栏目缓存

??因为栏目也是查询非常频繁的,所以,织梦系统也把创建立的栏目缓存到data/cashe/目录里面的inc_catalog_base.inc和admincat_id值.inc。

??栏目缓存是在用户建立后台栏目以后进行缓存的,在织梦系统里面还有很多的缓存内容,都保存到了/data/cashe里面。

总结:在织梦系统里面还有很多的缓存内容,这里不一一详细解释了,我们可以总结一下什么情况需要缓存。

??1)频繁查询数据库

? ? 当我们要频繁查询数据库时,那些经常需要查询的内容一般都缓存起来,这样不仅查询速度变快(查询硬盘比数据库更快),而且,少查询一次数据库就减少一次风险,即更加安全。

??2)比较重要的信息

? ?例如,会员信息,会员信息是对于网站来系统来说是比较重要的,在我们做网站制作开发时,一般都需要对会员信息进行缓存,一方面是为了查询的需要,另一方面是为了保持用户登录状态。

??3)提高网站访问速度

??像动态网站系统,为了提高网站访问速度,一般都需要对某些内容进行缓存,这样就不用查询数据库了,例如,首页,内容页和列表页都缓存起来的话,会比查询数据库会更快。

??4)编译内容

??像织梦系统就把模板编译的代码进行了缓存处理,动态网站不需要编译模板。

??一般上面几点都需要进行缓存,在我们进行网站制作建设开发时,可以根据自己开发的系统的需要进行设计。

本文来源于 中国知网免费入口、超星汇雅入口、大学图书馆入口等织梦网提供的入口资源。

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表