PHP
番茄大圣
这个作者很懒,什么都没留下…
展开
-
Discuz验证码功能解析
discuz验证码功能主要在\uc_server\lib\seccode.class.php或/source/class/class_seccode.php文件中实现,这两个文件的代码基本一致,区别是一个运行于ucenter server,一个运行于discuz。下面的分析是针对ucenter server上的验证码功能。discuz支持的验证码类型有图形、flash、音频和位图。在服务器安装了ming库(动态生成flash动画)的情况下,discuz默认使用flash验证码。如果未安装ming,已安装G原创 2020-06-28 16:23:35 · 7302 阅读 · 0 评论 -
Discuz UCenter Server功能解析
技术点1.extract函数将列表中的存在映射关系的key创建为变量,value作为变量值。具体可看:https://secure.php.net/manual/en/function.extract.php。2.explode函数分割字符串,相当于Java或者Python中的split。3.sid包含用户名信息登录UCenter之后,页面的链接显示为:/uc_server/admin.php?sid=c935ichRGUiM9%2BuTj3o%2BE4h9towLwM9iSFMM0%2BV0G原创 2020-06-24 17:32:02 · 2912 阅读 · 0 评论 -
Discuz搜索模块解析
功能解析搜索模块的子模块有8个,相关信息如下:子模块功能album搜索相册。blog搜索日志。collection搜索收藏的帖子。forum搜索帖子。group搜索群组或群组帖子。my貌似已废弃。portal搜索门户帖子。user搜索用户。discuz的论坛搜索入口可以在/admin.php?action=setting&operation=search页面中配置。搜索项目为搜索论坛的项是直接控制论坛主页的搜索入原创 2020-06-23 14:05:58 · 2129 阅读 · 0 评论 -
Discuz home模块解析(二)
这篇文章将继续分析home模块其余的功能。invite模块invite模块是邀请注册或者成为好友功能,邀请功能可以在管理后台的全局->注册与访问控制中开启。普通用户邀请的链接如下:http://127.0.0.1/home.php?mod=invite&id=8&c=zakbhb管理员批量邀请的链接如下:http://127.0.0.1/home.php?mod=invite&u=1&c=7219c3069259f602用户通过该链接访问论坛,论坛调用i原创 2020-06-18 19:50:14 · 1591 阅读 · 0 评论 -
Discuz home模块解析(一)
功能解析home模块很庞大,包含了discuz论坛和用户信息相关的几乎所有功能,比如动态、消息、勋章、道具等等,有的功能还分为很多小功能,下面列出home模块基本的组成:子模块说明space用户个人空间相关的功能,如活动、相册、日志、收藏、好友、分享、悬赏等等spacecp用户个人空间相关功能的改动,如添加好友、发日志、收藏帖子等等miscmagic道具相关editor编辑器invite邀请相关task任务相关,如任务列表、申请任务、原创 2020-06-16 14:12:14 · 1321 阅读 · 1 评论 -
Discuz论坛项目架构分析
知识点1.init_get和init_set函数:获取和修改php运行环境的变量值,即存于php.ini中的值。2.自动加载函数:discuz的class_core.php中有下面的代码,其作用是当我们在代码中引用不存在的类时,自动加载对应的类。这时__autoload就会被调用,并且类名会被作为参数传送过去。discuz的自动加载函数实现了自动加载source/class/目录下的类,避免了引用各种类文件的繁杂操作。if(function_exists('spl_autoload_register'原创 2020-06-12 17:26:59 · 1936 阅读 · 0 评论 -
Discuz member模块功能解析
知识点1.ip转换成地址discuzip装换成地址用的是离线数据,一个叫纯真IP地址数据库的数据库,存放了几乎所有ip到地址的映射,且经常有更新,可以在这个git库上下载,也可以网上搜qqwry.dat。功能解析discuz的member模块主管用户的登录、注册、账号激活、忘记密码和切换在线状态等功能,下面我们一一分析这些功能。排列顺序按简单到难吧。切换在线状态切换在线状态的实现在/source/module/member/member_switchstatus.php中。discuz用户有在原创 2020-06-10 17:51:50 · 1407 阅读 · 1 评论 -
Discuz安装模块功能解析
技术点error_reporting()。设置php要显示错误报告的错误等级,如果要显示parse_error,需要在php.ini配置文件中修改display_errors = on。set_magic_quotes_runtime(boolean)。从这个链接(http://php.net/manual/zh/function.set-magic-quotes-runtime.php)的例子可知,此函数是控制php读取字符串时是否对斜杠\进行解析。参数为false则进行解析。set_time_l原创 2020-06-09 14:17:32 · 445 阅读 · 0 评论 -
PHP各类型变量与布尔值之间的转换
经常看到PHP代码中拿各种类型的变量来做布尔值用,故写此文章理顺各种类型变量和布尔值之间的转化规律,总结如下:对于数值类型,值为0等于布尔值false,其他值等于true。对于字符串类型,字符串为空,即长度为0时,等于布尔值false,其他情况则等于true。对于引用类型,值为null则等于布尔值false,否则等于true。对于数组类型,当数组为空,即大小为0时,等于布尔值false,其他情况则等于true。数组类型用下标或者key取值时,若对应的下标或者key不存在,都会取得值null,其布原创 2020-06-08 15:55:35 · 1322 阅读 · 0 评论