phpcms首页如加上用户登录的信息?
2017-12-09 16:46
337 查看
请看效果图
我用的是cookie的方法,请先打开discuz的文件
\source\function\function_member.php
找到函数function setloginstatus()
把以下的代码
dsetcookie('auth', authcode("{$member['password']}\t{$member['uid']}", 'ENCODE'), $cookietime, 1, true);
dsetcookie('loginuser');
变为:
dsetcookie('auth', authcode("{$member['password']}\t{$member['uid']}", 'ENCODE'), $cookietime, 1, true);
dsetcookie('loginuser',$_G['username']);
在首页我们可以这里做:
注意这里的cookie
{if $_COOKIE['fgiC_2132_auth']}
就是上面的
dsetcookie('auth', authcode("{$member['password']}\t{$member['uid']}", 'ENCODE'), $cookietime, 1, true);
我们这里判断如果存在这个值就显示出登录的用户名相关的信息,没有的话就显示出登录界面
而
{$_COOKIE['fgiC_2132_loginuser']
代表的是用户名,就是上面的
dsetcookie('loginuser',$_G['username']);
到这里,我们基本就完成了,但是退出怎么做呢?打开文件source\class\class_member.php找到函数function on_logout()系统默认的就是这个用户退出函数,但是请看这个函数中有一个判断语句
if($_GET['formhash'] != $_G['formhash']) {
showmessage('logout_succeed', dreferer(), array('formhash' => FORMHASH, 'ucsynlogout' => $ucsynlogout));
}
而我们一会要做的连接中是没有formhash这个值的,所以我们要新写一个退出函数如下:
对比一下我们就可以知道,新写的退出函数只是少了上面的判断语句而以我们在phpcms做的首页中加入退出按钮:
<a href="{siteurl()}bbs/member.php?mod=logging&action=logoff">退出</a>
那么到这里是否完成了呢?我们回到首页来点击一下会发现提示没有定义操作logoff解决的方法是:文件source\module\member\member_logging.php找到
if(!in_array($_GET['action'], array('login', 'logout','logoff'))) {
showmessage('undefined_action');
}
在array那里就新增加的logoff,这时再去点就没有提示了
so
done!
转自:http://blog.csdn.net/tiangsu_php/article/details/7668504
我用的是cookie的方法,请先打开discuz的文件
\source\function\function_member.php
找到函数function setloginstatus()
把以下的代码
dsetcookie('auth', authcode("{$member['password']}\t{$member['uid']}", 'ENCODE'), $cookietime, 1, true);
dsetcookie('loginuser');
变为:
dsetcookie('auth', authcode("{$member['password']}\t{$member['uid']}", 'ENCODE'), $cookietime, 1, true);
dsetcookie('loginuser',$_G['username']);
在首页我们可以这里做:
{if $_COOKIE['fgiC_2132_auth']} <li class="header_link" style="margin-left: 10px;"><span style="padding-left: 16px;margin-top: 5px;height:25px;width: 20px;background: url(statics/images/my2400/user_online.gif) no-repeat;background-position: 0px 2px;"></span><a href="{siteurl()}bbs/home.php?mod=space" target="_blank">欢迎,{$_COOKIE['fgiC_2132_loginuser']}</a> </li> <li class="header_link"><span class="pipe" style="margin-left: 5px;margin-right: 5px;">|</span><a href="{siteurl()}bbs/member.php?mod=logging&action=logoff">退出</a></li> {else} <li class="reg_ico"></li> <li class="header_link"><a href="{siteurl()}bbs/member.php?mod=register">注册</a></li> <li class="login_ico"></li> <li class="header_link"><a href="{siteurl()}bbs/member.php?mod=logging&action=login">登录</a></li> {/if}
注意这里的cookie
{if $_COOKIE['fgiC_2132_auth']}
就是上面的
dsetcookie('auth', authcode("{$member['password']}\t{$member['uid']}", 'ENCODE'), $cookietime, 1, true);
我们这里判断如果存在这个值就显示出登录的用户名相关的信息,没有的话就显示出登录界面
而
{$_COOKIE['fgiC_2132_loginuser']
代表的是用户名,就是上面的
dsetcookie('loginuser',$_G['username']);
到这里,我们基本就完成了,但是退出怎么做呢?打开文件source\class\class_member.php找到函数function on_logout()系统默认的就是这个用户退出函数,但是请看这个函数中有一个判断语句
if($_GET['formhash'] != $_G['formhash']) {
showmessage('logout_succeed', dreferer(), array('formhash' => FORMHASH, 'ucsynlogout' => $ucsynlogout));
}
而我们一会要做的连接中是没有formhash这个值的,所以我们要新写一个退出函数如下:
//add by jiang in order to logut in the home page function on_logoff(){ global $_G; $ucsynlogout = $this->setting['allowsynlogin'] ? uc_user_synlogout() : ''; clearcookies(); $_G['groupid'] = $_G['member']['groupid'] = 7; $_G['uid'] = $_G['member']['uid'] = 0; $_G['username'] = $_G['member']['username'] = $_G['member']['password'] = ''; $_G['setting']['styleid'] = $this->setting['styleid']; showmessage('logout_succeed', dreferer(), array('formhash' => FORMHASH, 'ucsynlogout' => $ucsynlogout)); }
对比一下我们就可以知道,新写的退出函数只是少了上面的判断语句而以我们在phpcms做的首页中加入退出按钮:
<a href="{siteurl()}bbs/member.php?mod=logging&action=logoff">退出</a>
那么到这里是否完成了呢?我们回到首页来点击一下会发现提示没有定义操作logoff解决的方法是:文件source\module\member\member_logging.php找到
if(!in_array($_GET['action'], array('login', 'logout','logoff'))) {
showmessage('undefined_action');
}
在array那里就新增加的logoff,这时再去点就没有提示了
so
done!
转自:http://blog.csdn.net/tiangsu_php/article/details/7668504
相关文章推荐
- phpcms首页如加上用户登录的信息?
- Windows任务管理 连接用户登录信息 通用类[C#版]
- 用户登录后的信息存取
- 单点登录CAS6-服务端自定义返回的用户信息
- cas 3.5.2 登录成功后,如何返回用户更多信息?
- vs2010asp.net网站制作用户注册登录界面源代码(包含验证码)并把用户信息保存到数据库sql2008
- 通过cookie保存并读取用户登录信息实例
- who命令_Linux who 命令用法详解:显示目前登录系统的用户信息
- asp.net用户身份验证时读不到用户信息的问题 您的登录尝试不成功。请重试。 Login控件
- dorado获取用户登录信息
- 用户登录信息
- 如何在HPUX的终端提示符前显示当前登录用户信息和所在目录
- 用户登录后,往session中插入的“userDetail”即用户信息,专业属于叫什么?
- 整合spring cloud云架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)
- (转)在ASP.NET 中实现单点登录(利用Cache, 将用户信息保存在服务器缓存中)
- facebook+cocos2d-x (二)登录、获取用户信息及好友列表
- 用struts,某一个用户已登录,我要在几个页面上用到该用户的一些信息比如姓名,怎样做呢,是不是要访问数据库?
- Servlet案例5:用户登录失败信息回显
- 软件评测-信息安全-应用安全-资源控制-用户登录限制(上)
- 友盟微博二次登录或授权,用户uid等信息为空