Typecho根据访客记录自动显示隐藏账号cookies信息
typecho内置有这方面的功能,也就是<?php $this->remember(''); ?>
<?php $this->remember('author'); ?> = 账号信息
<?php $this->remember('mail'); ?> = 邮件信息
也就是typecho提交信息后会留下cookies值,<?php $this->remember(''); ?>就是用来获取cookies的账号信息
那么,也就可以这样
<?php if($this->user->hasLogin()): ?>
<div class="hasLogin">
<?php $email=$this->user->mail; $imgUrl = getGravatar($email);echo '<img src="'.$imgUrl.'" width="22px" height="22px" class="avatar hasLogin-author" >'; ?><?php $this->user->screenName(); ?>. <a href="<?php $this->options->logoutUrl(); ?>" title="Logout">退出 »</a>
</div>
<?php else: ?>
<?php if($this->remember('author',true) != "" && $this->remember('mail',true) != "") : ?>
<div class="hasLogin comm_on" id="comm_on">
<?php $this->remember('author'); ?>. <a href="javascript:;" onclick="bian()" title="Logout" >编辑资料? »</a>
<script>function bian()
{ var oBox = document.getElementById("comm_off"); var oBox1 = document.getElementById("comm_on"); oBox.style.display= "block"; oBox1.style.display= "none";}</script>
</div>
<ul class="ident" id="comm_off">
<li>
<input type="text" name="author" placeholder="昵称*" value="<?php $this->remember('author'); ?>">
</li>
<li>
<input type="mail" name="mail" placeholder="邮件*" value="<?php $this->remember('mail'); ?>">
</li>
</ul>
<?php else : ?>
<ul class="ident">
<li>
<input type="text" name="author" placeholder="昵称*" value="<?php $this->remember('author'); ?>">
</li>
<li>
<input type="mail" name="mail" placeholder="邮件*" value="<?php $this->remember('mail'); ?>">
</li>
</ul>
<?php endif; ?><?php endif ; ?>
以上的大概思路是
1,判断是否注册用户,如果是注册用户,直接显示账号信息
2,只是游客用户,判断用户是否有过cookies的信息,如果有,则不需要填入昵称和邮件,如果用户想改变昵称邮箱,可以直接点击编辑资料,进行修改
3,如果是新的游客,没有留言回复过,则显示正常的初步昵称和邮件地址
ok
发表评论
已有 7 条评论
热门文章
Spimes主题专为博客、自媒体、资讯类的网站设计....
一款个人简历主题,可以简单搭建一下,具体也比较简单....
仿制主题,Typecho博客主题,昼夜双版设计,可....
用于作品展示、资源下载,行业垂直性网站、个人博客,....
热评文章
最新评论
Z.
11月29日
博主你好,Deng插件,这个点击不进去,提示这个(Warning: require_once(/www/wwwroot/w.zzy2020.com/usr/plugins/Deng/Deng/html/profile.php): failed to open stream: No such file or directory in /www/wwwroot/w.zzy2020.com/Fresh/extending.php on line 26
Fatal error: require_once(): Failed opening required '/www/wwwroot/w.zzy2020.com/usr/plugins/Deng/Deng/html/profile.php' (include_path='.:/www/server/php/72/lib/php') in /www/wwwroot/w.zzy2020.com/Fresh/extending.php on line 26)
还有一个问题,本站的评论框回复之后,没有继续回复的按钮,也就是不能再嵌套下去了,这个是不是也应该添加一下。
还有还是那个splity的问题,hong.center这个站点的评论框就会出现这个问题,站长你可以去试一下
@xzy
我现在回复这个就是嵌套,我网站设置的是2层
站长我这里访问你网站发现,gravatar镜像站v2ex的连接速度很慢导致网站一直在加载,我刚开始以为你的服务器是在境外,刚刚用f12才看到,推荐更换到https://sdn.geekzu.org/avatar/
我更新了4月15日那版本之后,游客评论过后,评论框仍然显示的是昵称和邮件的输入框。登录用户也不作显示。
另外,站长你的博客评论框作为游客评论过后虽然显示了“xxx,修改昵称”,但直接写完评论点击提交后跳到了错误页,上面提示“请输入邮箱”“请输入昵称”。站长你可以自己测试一下bug
@xzy
ok了,忘了把那个添加上去了,已经修复了:乖:
这个会在Splity的下个版本更新吗?现在的Splity不管是登录还是评论过的游客,都还要重新输入
@xzy
评论过的游客,是有记录的,不过登录的,没有做判断状态