分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

phpcms首页如加上用户登录的信息?

发布时间:2023-09-06 01:29责任编辑:沈小雨关键词:暂无标签

请看效果图

我用的是cookie的方法,请先打开discuz的文件

\source\function\function_member.php

找到函数function setloginstatus()

把以下的代码

  1. dsetcookie(‘auth‘, authcode("{$member[‘password‘]}\t{$member[‘uid‘]}", ‘ENCODE‘), $cookietime, 1, true);  
  2.     dsetcookie(‘loginuser‘);  

变为:

 
  1. dsetcookie(‘auth‘, authcode("{$member[‘password‘]}\t{$member[‘uid‘]}", ‘ENCODE‘), $cookietime, 1, true);  
  2.     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

 
  1. {if $_COOKIE[‘fgiC_2132_auth‘]}  

就是上面的

dsetcookie(‘auth‘, authcode("{$member[‘password‘]}\t{$member[‘uid‘]}", ‘ENCODE‘), $cookietime, 1, true);

我们这里判断如果存在这个值就显示出登录的用户名相关的信息,没有的话就显示出登录界面

 
  1. {$_COOKIE[‘fgiC_2132_loginuser‘]  

代表的是用户名,就是上面的

  1. dsetcookie(‘loginuser‘,$_G[‘username‘]);  

到这里,我们基本就完成了,但是退出怎么做呢?打开文件source\class\class_member.php找到函数function on_logout()系统默认的就是这个用户退出函数,但是请看这个函数中有一个判断语句

 
  1. if($_GET[‘formhash‘] != $_G[‘formhash‘]) {  
  2.             showmessage(‘logout_succeed‘, dreferer(), array(‘formhash‘ => FORMHASH, ‘ucsynlogout‘ => $ucsynlogout));  
  3.         }  

而我们一会要做的连接中是没有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做的首页中加入退出按钮:


 
  1. <a href="{siteurl()}bbs/member.php?mod=logging&action=logoff">退出</a>  

那么到这里是否完成了呢?我们回到首页来点击一下会发现提示没有定义操作logoff解决的方法是:文件source\module\member\member_logging.php找到

 
  1. if(!in_array($_GET[‘action‘], array(‘login‘, ‘logout‘,‘logoff‘))) {  
  2. showmessage(‘undefined_action‘);  
  3. }  

在array那里就新增加的logoff,这时再去点就没有提示了

so

done!

转自:http://blog.csdn.net/tiangsu_php/article/details/7668504

phpcms首页如加上用户登录的信息?

原文地址:http://www.cnblogs.com/xiaomifeng/p/8011939.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved