接上文:https://aoaoao.me/1192.html

在上次的化学式验证码启用后,有许多文科生掀桌,所以这次又写了一个针对文科生版的:

%e8%b6%85%e7%ba%a7%e6%88%aa%e5%b1%8f_20161225_090826
%e8%b6%85%e7%ba%a7%e6%88%aa%e5%b1%8f_20161225_090826

要是再答不上来可不能怪我→_→

验证码的数据爬取自维基百科,好在维基百科每个日期的词条格式都是规范式的,这也就方便了爬取。总共收集了三万多条数据,分为伟人出生,逝世,大事件三类。数据搞定了,随之而来的难题是用GD库写多行文本,本来以为肯定有相关函数,但后来发现GD库只能写单行文本,多行的话只能通过计算文字量,分开写入单行

735dfef49a6e3a85
735dfef49a6e3a85

维基百科三万历史上的今天数据

我已经打包成SQL格式了:https://file.aoaoao.me/f.php?k=57e6b

此数据为粗整理版,由于爬去的时候因为网络问题断了几次,所以有几天的数据是不全的。其中y字段为时间类型,0为大事件,1为人物出生,2为逝世。d为年份,i为日期,p为时间内容。

爬虫参考了GitHub上的开源项目,但原爬虫已失效,稍后我会在此更新代码:https://github.com/HFO4/TodayInHistory-Crawler

为树洞外链添加此验证码

要求:树洞外链版本2.4.X,material主题,PHP版本≥5.4,启用GD库扩展(低版本未测试)
1.安装Composer(已安装请略过)Linux下可执行以下命令安装

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

2.用cd命令切换到树洞外链安装目录,执行下面命令安装gd-text

composer require zgldh/gd-text-for-chinese

3.下载验证码补丁:https://file.aoaoao.me/f.php?k=a0472 并覆盖到树洞外链所在目录
4.将压缩包内的Cas.sql和Todayinhistory.sql导入至数据库
演示:https://file.aoaoao.me/views/login.php
默认情况下,化学式和历史上的今天会随机展示给用户,如果只想使用其中一种,可以修改content/themes/material/login.html底部的js代码。如果只使用化学式验证码,第一第二步可以略过。另外还要说明的是,化学式验证码图像会直接调用chemicalbook,不支持https,并且用户可以通过图像url获取到CAS编号从而查询到答案。你可以使用nginx或七牛融合cdn等工具将图像缓存下来,在此不再赘述。

为其他程序添加此验证码

原理类似,随机从数据库中取值,讲答案写入到session中,注意判断时忽略大小写,检查空值等。历史上的今天的文字格式转换、图像生成可参见includes/code2.php