登录 注册 VIP特权 提交收录
Search Engine Optimization,不撸代码不修BUG
主页 » 教程 » 正文

Typecho使用AJAX自动填写游客信息思路分享

灵感来源

昨天看了大佬的文章《写了一个很鸡肋的功能》,通过邮箱读取gravatar网站的api获取用户昵称,然后自动填入到评论区昵称上,觉得灵感很棒,本来想抄下的,后来一想gravatar有墙啊,那就有点难受了。

实现

于是经过几秒钟的思考,觉得直接读取历史评论里面的信息不就好了嘛,只要填过一次,下次评论时只要写下邮箱,别的信息就自动获取到了。

流程:用户填写邮箱地址,然后ajax请求api,api这里返回三个数据(头像地址,昵称,网站地址),然后将返回的信息自动填入。

重点就是api返回的三个数组的实现,头像地址比较简单,就是将邮箱用md5加密下,然后拼上地址就行了。

//差不多就是这种感觉
$avatar = 'https://secure.gravatar.com/avatar/'.md5($email).'?d=mm';


然后就是昵称和网站地址的查询了,通过邮箱使用sql查询评论列表,然后抽取最新一条的信息,从中找到昵称和网站地址就好了

//差不多就是这样
$db = Typecho_Db::get();
$info=$db->fetchRow($db->select('author','url')->from('table.comments')
->where('table.comments.mail = ?', $email)
->order('table.comments.created', Typecho_Db::SORT_DESC));

最后处理下特殊情况就行了,比如处理查询不到的情况(差不多就给空值)、处理用户已经填好昵称的情况(填过昵称的就不给他自动填写)等等。

效果

后语

这次只是分享下思路,因为我是在自己模板上直接弄的,有很多代码和教程没啥关系不方便大段大段的往文章里粘贴,所以只是分享下思路,会代码的应该都会写哈,其实很多时候需要的是灵感,而不是技术哈!这玩意不难,不过要不是看到那篇文章,估计就不会有这个东西了!


您的大名:
万水千山总是情,给个打赏行不行。 打赏

标签: none
! 如链接失效请在下方留言。本站所发布的全部内容源于互联网搬运,仅限于小范围内传播学习和文献参考,请在下载后24小时内删除,如果有侵权之处请第一时间联系我们删除。敬请谅解! E-mail:49613651@qq.com
原创文章,作者:一宇A1xt,如若转载,请注明出处:https://a1xt.com/archives/641.html

相关推荐


猜你喜欢

接管typecho通知提醒

灵感来源昨天看了大佬的文章《写了一个很鸡肋的功能》,通过邮箱读取gravatar网站的api获取用户昵称,然后自动填入到评论区昵称上,...


上一篇
下一篇

发表评论