请选择 进入手机版 | 继续访问电脑版

AKCMS 建站论坛

 找回密码
 注册
搜索
查看: 462|回复: 0

用户系统输出用户名 uid到模板到全局变量

[复制链接]

3

主题

0

好友

0

积分

新手上路

Rank: 1

金币
164
威望
0
积分
0
帖子
36
发表于 2017-10-27 13:05 |显示全部楼层
首先修改
common.inc.php

这个文件找到
  1. $onlineip = $_SERVER['REMOTE_ADDR'];
  2. }
复制代码
在下面添加
  1. //下面判断cookie的正确性
  2. //echo $codekey;
  3. //echo $onlineip;
  4. $meideng=0;
  5. $username88='guest';
  6. $uid88=0;
  7. $ck88 = ak_md5($codekey.$onlineip, 1);

  8. //echo $ck88;
  9.                 $ck88value = akgetcookie($ck88);

  10.                 //echo $ck88value;
  11.                 if(empty($ck88value)){
  12.                        
  13.                         $meideng=0;
  14.                
  15.                 }else{
  16.                 list($sid88, $uid88, $username88) = explode("\t", authcode($ck88value, 'DECODE'));
  17.                 if(empty($uid88)){
  18.                
  19.                 $meideng=0;
  20.                
  21.                 }else{
  22.                
  23.                 $meideng=1;
  24.                
  25.                 }


  26.                 }
复制代码
这个不查询数据库可以减少一次数据库查询 但是如果这个cookie被局域网的其他用户添加会也会显示用户名和uid,这个不绑定这台计算机,如果想绑定用session,这个cookie只是和计算机ip绑定

修改global.func.php

找到这个位置修改代码,
  1. global $template_path, $tpl, $user, $thetime, $lan, $lr, $header_charset, $sections, $setting_storemethod, $homepage, $setting_defaultfilename, $sysname, $sysedition, $settings;
  2.         if(empty($pagevariables['subtemplate']) && empty($pagevariables['systemplate']) && strpos($template, '/') === false) $template = ','.$template;
  3.         createpathifnotexists(AK_ROOT."cache/foretemplates");
  4.         $tpl = new tpl(array(AK_ROOT."configs/templates/$template_path", AK_ROOT.'templates/fore'), AK_ROOT.'cache/foretemplates');
  5.         $GLOBALS['tpl'] = $tpl;
  6.        
  7.         $variables = array(
  8.                 'charset' => $header_charset,
  9.                 'thetime' => $thetime,
  10.                 'meideng' => $meideng,
  11.                 'page' => 1,
  12.                 'home' => substr($homepage, 0, -1)
  13.         );
复制代码
修改为
  1. global $template_path, $tpl, $user, $thetime, $lan, $lr, $header_charset, $sections, $setting_storemethod, $homepage, $meideng,$username88,$uid88,$setting_defaultfilename, $sysname, $sysedition, $settings;
  2.         if(empty($pagevariables['subtemplate']) && empty($pagevariables['systemplate']) && strpos($template, '/') === false) $template = ','.$template;
  3.         createpathifnotexists(AK_ROOT."cache/foretemplates");
  4.         $tpl = new tpl(array(AK_ROOT."configs/templates/$template_path", AK_ROOT.'templates/fore'), AK_ROOT.'cache/foretemplates');
  5.         $GLOBALS['tpl'] = $tpl;
  6.        
  7.           $username88=ak_htmlspecialchars($username88);

  8.       $uid88=intval($uid88);

  9.         $variables = array(
  10.                 'charset' => $header_charset,
  11.                 'thetime' => $thetime,
  12.                 'meideng' => $meideng,
  13.                 'username88' => $username88,
  14.                 'uid88' => $uid88,
  15.                 'page' => 1,
  16.                 'home' => substr($homepage, 0, -1)
  17.         );
复制代码
上面代码的目的是修改为全局变量

在模板中的使用为
  1. <{$meideng}>
  2. <{$username88}>
  3. <{$uid88}>
复制代码
$meideng 是判断登录不登录 0为不登录 1为登录
$username88  这是用户名

$uid88 这是用户id


如果只是前台显示可以这样使用,如果是投稿 留言 付费下载 消耗积分 建议结合session,当然akcms用的是session,这个只是我为了前台显示用户名而改的变量,并且是为了减少一次查询数据库。

www.dy126.tk 每天自动更新
您需要登录后才可以回帖 登录 | 注册

手机版|AKCMS官方站

GMT+8, 2018-4-24 03:13

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部