帝国论坛帝国网站管理系统交流区帝国CMS使用交流[原创]自己动手,修改源文件实现判断用户是否登录来决定显示某一部分内容 【本版专题贴子】  
 1/2     1 2 ›› ›|
主题:[原创]自己动手,修改源文件实现判断用户是否登录来决定显示某一部分内容 [加入收藏夹]   

macnie
用户头衔:书生

精华贴   :0
发贴数   :29
经验值   :98
注册时间:2007-09-17
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[原创]自己动手,修改源文件实现判断用户是否登录来决定显示某一部分内容
兼容4.7
————————————————————
某些情况下,确实需要修改源代码来实现自己理想的效果。比如现在的默认登陆是显示控制面板那些导航的。很不爽。如何在没有登录的时候不显示?如何在登录之后自动显示?如下:
——————————————————————————————
打开 e/class/user.php
找到 登录函数和注册函数,然后再函数里找到:
$set1=esetcookie("mlusername",$username,$logincookie);
        $set2=esetcookie("mluserid",$r[$user_userid],$logincookie);
        $set3=esetcookie("mlgroupid",$r[$user_group],$logincookie);
        $set4=esetcookie("mlrnd",$rnd,$logincookie);
在后面加入:
session_start();
        $_SESSION['userid']=$r[$user_userid];
        $_SESSION['username']=$r[$user_username];
        $_SESSION['usergroup']=$r[$user_group];
——————————————————————————————
打开e/class/user.php
找到退出登录函数,然后找:
$gotourl="../../";
        if(strstr($_SERVER['HTTP_REFERER'],"e/member/iframe"))
        {
                $gotourl=$public_r['newsurl']."e/member/iframe";
        }
在后面加入:
session_start();
        $_SESSION['userid']=false;
        $_SESSION['username']=false;
        $_SESSION['usergroup']=false;
保存就可以了。
————————————————————————————————
使用方法:
任意一个源文件里面,比如控制面板是:e/data/template/cp_1.php.
开始判断:
<?
session_start();
if($_SESSION['userid']){?>
这里加入如果登录显示内容,不登陆则不显示内容
<?}?>
————————————————————————————————
例子:
        <?session_start(); if($_SESSION['userid']){?>
                <ul>
                         <li><a href="/e/member/EditInfo">修改资料</a></li>
                     <li><a href="/e/member/msg">短信息</a></li>
                     <li><a href="/e/member/EditInfo/SetSpace.php">设置店铺</a></li>
                     <li><a href="/e/DoInfo">管理产品信息</a></li>
                     <li><a href="/e/member/fava">产品收藏</a></li>
                     <li><a href="/e/member/my">我的状态</a></li>
                     <li><a href="/e/enews?enews=exit" onclick="return confirm('确认要退出?');">退出</a></li>
                     <li>|->&nbsp;&nbsp;&nbsp;<a href="/e/space/?userid=<? session_start(); echo $_SESSION['userid']?>">预览店铺</span></li>
                    <li><a href="/e/DoInfo/ChangeClass.php?mid=8">发布产品信息</a></li>
                </ul>
<?}?>
——————————————————————————
同理:
取得当前登录的用户id  $tm_userid=$_SESSION['userid'];
取得当前登录的用户名  $tm_username=$_SESSION['username'];
取得当前登录的用户组  $tm_usergroup=$_SESSION['usergroup'];

存在session里面这三个足够用了。实际上只需要一个id就够用了。因为你可以根据它来查询数据库实现无所不能的功能。比如调取当前用户的详细资料,发表过的文章,哪些文章。。举一反三吧自己。我只是提供一种方法,用cookie也可以。总而言之,帝国很强大。无所不能。开发一个阿里巴巴也可以的。

[该贴被修改 2 次,最后修改时间 2007-11-29 16:45:45 ]



2007-11-29 16:34:42 已设置保密 顶部 回复 引用 报告 编辑 删除

bqgvg
用户头衔:举人

精华贴   :0
发贴数   :517
经验值   :1401
注册时间:2007-10-23
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

看不懂,不过还是支持




2007-11-29 16:35:54 已设置保密 顶部 回复 引用 报告 编辑 删除

hicode
用户头衔:版主

精华贴   :1
发贴数   :21646
经验值   :47915
注册时间:2007-07-20
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

改用session了,怎么不用帝国自己本身的cookie信息




2007-11-29 16:36:53 已设置保密 顶部 回复 引用 报告 编辑 删除

macnie
用户头衔:书生

精华贴   :0
发贴数   :29
经验值   :98
注册时间:2007-09-17
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

我是觉得session数组用起来方便。我只是给大家提供一种方法,多一种方法多一条路。并不是说非要用我这个。




2007-11-29 16:42:44 已设置保密 顶部 回复 引用 报告 编辑 删除

wm_chief
用户头衔:管理员

精华贴   :21
发贴数   :48941
经验值   :114161
注册时间:2002-10-30
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

嗯,也可以用:
if($_COOKIE['cookie前缀+mluserid'])
{
?>
已登陆
<?
}
else
{
?>
未登陆
<?
}

[该贴被修改 1 次,最后修改时间 2007-11-29 16:46:44 ]


[零基础入门教程] [模板制作教程] [采集使用教程]
2007-11-29 16:46:13 已设置保密 顶部 回复 引用 报告 编辑 删除

macnie
用户头衔:书生

精华贴   :0
发贴数   :29
经验值   :98
注册时间:2007-09-17
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

呵呵。是啊。WC说的是帝国自带的cookie保存机制。都可以的。个人是喜欢session。




2007-11-29 16:50:14 已设置保密 顶部 回复 引用 报告 编辑 删除

rayyang
用户头衔:进士

精华贴   :0
发贴数   :661
经验值   :2131
注册时间:2007-06-30
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

用你这样的方法,如下功能如何修改代码?
没登录是显示 免费注册 会员登录 
登录后显示会员中心 退出登录

请指教,谢谢。




2007-11-30 12:58:08 已设置保密 顶部 回复 引用 报告 编辑 删除

cnxgb
用户头衔:书生

精华贴   :0
发贴数   :7
经验值   :38
注册时间:2007-02-10
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

好东西啊




2008-03-26 05:05:47 已设置保密 顶部 回复 引用 报告 编辑 删除

luring
用户头衔:探花

精华贴   :3
发贴数   :2303
经验值   :7189
注册时间:2007-02-12
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

收藏.
正需要



1
2008-03-26 09:10:17 已设置保密 顶部 回复 引用 报告 编辑 删除

qwea123
用户头衔:进士

精华贴   :0
发贴数   :2033
经验值   :5130
注册时间:2007-06-03
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

原帖由 wm_chief 于 2007-11-29 16:46:13 发表
嗯,也可以用:
if($_COOKIE['cookie前缀+mluserid'])
{
?>
已登陆
<?
}
else
{
?>
未登陆
<?
}



具体怎么改啊wc~如何使用.



大梦谁先觉,平生我自知青岛上门按摩http://www.qdsmam.com  青岛婚车租赁
2008-06-28 15:55:18 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/2     1 2 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1