前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Typecho使用AJAX自动填写游客信息思路分享

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

作者头像
泽泽社长
发布2023-04-17 14:53:29
发布2023-04-17 14:53:29
58200
代码可运行
举报
文章被收录于专栏:泽泽社泽泽社
运行总次数:0
代码可运行

灵感来源

35个月前写过一篇《Typecho使用AJAX实时获取评论头像》文章,当时只是获取ajax处理了邮箱,然后将gravatar头像地址给到头像。

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

实现

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
//差不多就是这种感觉
$avatar = 'https://secure.gravatar.com/avatar/'.md5($email).'?d=mm';

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

代码语言:javascript
代码运行次数:0
运行
复制
//差不多就是这样
$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));

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

效果

Typecho使用AJAX自动填写游客信息.gif

后语

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

linkCard('.post-content','0');

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 灵感来源
  • 实现
  • 效果
  • 后语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档