[转载]DedeCMS中实现在顶层banner中显示自定义登录信息 - chenyujing5678的专栏 - 博客频道 - CSDN.NET

mikel阅读(1135)

[转载]DedeCMS中实现在顶层banner中显示自定义登录信息 – chenyujing5678的专栏 – 博客频道 – CSDN.NET.

转载请标明是引用于 http://blog.csdn.net/chenyujing5678

欢迎拍砖!

一、需求描述

dedeCMS自带的模板中有互动中心模块,如下图所示:

 

 

由于会员登陆对我来说不是网站的重要模块且默认DedeCMS的会员中心模块的初始化很慢,常会显示“正在载入中,请稍候。。。”,

所以不想让它出现在首页上,而是想在顶层banner中显示自定义登录信息,如下图所示:

二、原理分析

我们来分析一下DedeCSM自带的模板是怎么实现会员中心及登录信息显示的内容的:

1、index.htm中定义了用户名密码模块:

<div id="_userlogin">
<div class="userlogin"><form action="{dede:global.cfg_memberurl/}/index_do.php" method="POST" name="userlogin"><input name="fmdo" type="hidden" value="login" />
<input name="dopost" type="hidden" value="login" />
<input name="keeptime" type="hidden" value="604800" />
<div class="fb">用户名:
<input class="ipt-txt" name="userid" size="20" type="text" /></div>
<div class="fb">密码:
<input class="ipt-txt" name="pwd" size="20" type="password" /></div>
{dede:php}
if(preg_match("#2#", $safe_gdopen))
{
echo '
<div class="fb">验证码:
<input class="ipt-txt" name="vdcode" size="8" type="text" />
<img id="vdimgck" style="cursor: pointer; margin-left: 0px; text-transform: uppercase;" src="'.$cfg_cmspath.'/include/vdimgck.php" alt="看不清?点击更换" align="absmiddle" /></div>
';
}
{/dede:php}
<div class="submit"><button class="btn-1" type="submit">登录</button>
<a href="{dede:global.cfg_memberurl/}/index_do.php?fmdo=user&amp;dopost=regnew">注册帐号</a> <a href="{dede:global.cfg_memberurl/}/resetpassword.php">忘记密码?</a></div>
</form></div>
</div>
<!-- /userlogin -->
<script type="text/javascript" language="javascript">// <![CDATA[
CheckLogin();
// ]]></script>
<div class="latestlogin">

<strong>最近登陆的会员</strong>
<ul class="e7">
<ul class="e7">{dede:memberlist row=6 signlen=30}
	<li><a href="[field:spaceurl/]" target="_blank"><img src="[field:face/]" alt="[field:spacename/]" width="52" height="52" />[field:uname/]</a></li>
</ul>
</ul>
{/dede:memberlist}

</div>
<!-- /latestlogin -->

从以上代码可以看出它只是显示一个界面而与,那么当我们输入用户名、密码,点登录后是怎么变为如下的结果呢:

2、在上面的代码中点了登录按钮后,由于没有指定button的onclick响应函数,所以默认submit会有一个跳转,页面会刷新。

当页面刷新时,就把index.htm的HTML再次执行一次。在上面代码的下面有这么一行代码:

<!-- /userlogin -->
     <script language="javascript" type="text/javascript">CheckLogin();</script>

3、我们来看CheckLogin()的定义,它出现在index.htm的head区:

<link href="{dede:global.cfg_templets_skin/}/style/dedecms.css" rel="stylesheet" media="screen" type="text/css" />
<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>
<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmspath/}/images/js/j.js" ></script>
<script language="javascript" type="text/javascript" src="{dede:global.cfg_templets_skin/}/js/pic_scroll.js"></script>
<script language="javascript" type="text/javascript">
<!--
	$(function(){
		$("a[_for]").mouseover(function(){
			$(this).parents().children("a[_for]").removeClass("thisclass").parents().children("dd").hide();
			$(this).addClass("thisclass").blur();
			$("#"+$(this).attr("_for")).show();
		});
		$("a[_for=uc_member]").mouseover();
		$("a[_for=flink_1]").mouseover();
	});
	
	function CheckLogin(){
	  var taget_obj = document.getElementById('_userlogin');
	  myajax = new DedeAjax(taget_obj,false,false,'','','');
	  myajax.SendGet2("{dede:global.cfg_cmspath/}/member/ajax_loginsta.php");
	  DedeXHTTP = null;
	}
-->
</script>

CheckLogin()首先获得id为’_userlogin’的网页元素,其实这个元素就是我们的用户名密码登录模块;

然后调用DedeAjax函数,这个函数定义在{dede:global.cfg_cmsurl/}/include/dedeajax2.js文件(所以在前面引入了引JavaScript文件)

//gcontainer 是保存下载完成的内容的容器
//mShowError 是否提示错误信息
//DedeShowWait 是否提示等待信息
//mErrCon 服务器返回什么字符串视为错误
//mErrDisplay 发生错误时显示的信息
//mWaitDisplay 等待时提示信息
//默认调用 DedeAjax('divid',false,false,'','','')

function DedeAjax(gcontainer,mShowError,mShowWait,mErrCon,mErrDisplay,mWaitDisplay)
{
//用GET方式发送数据,阻塞模式
this.SendGet2 = function(purl) {

从以上我们知道为什么能显示登录结果的原因了:

通过调用通讯模块dedeajax2.js的功能根据{dede:global.cfg_cmspath/}/member/ajax_loginsta.php返回结果网页代码,然后在id为”_userlogin'”的地方显示。

ajax_loginsta.php的一部分代码如下:

require_once(dirname(__FILE__)."/config.php");
AjaxHead();
if($myurl == '') exit('');

$uid  = $cfg_ml->M_LoginID;

!$cfg_ml->fields['face'] && $face = ($cfg_ml->fields['sex'] == '女')? 'dfgirl' : 'dfboy';
$facepic = empty($face)? $cfg_ml->fields['face'] : $GLOBALS['cfg_memberurl'].'/templets/images/'.$face.'.png';
?>
<div class="userinfo">
    <div class="welcome">你好:<strong><?php echo $cfg_ml->M_UserName; ?></strong>,欢迎登录 </div>
    <div class="userface">
        <a href="<?php echo $cfg_memberurl; ?>/index.php"><img src="<?php echo $facepic;?>" width="52" height="52" /></a>
    </div>
    <div class="mylink">
        <ul>
            <li><a href="<?php echo $cfg_memberurl; ?>/guestbook_admin.php">我的留言</a></li>
            <li><a href="<?php echo $cfg_memberurl; ?>/mystow.php">我的收藏</a></li>
            <li><a href="<?php echo $cfg_memberurl; ?>/article_add.php">发表文章</a></li>
            <li><a href="<?php echo $cfg_memberurl; ?>/myfriend.php">好友管理</a></li>
            <li><a href="<?php echo $cfg_memberurl; ?>/visit-history.php">访客记录</a></li>
            <li><a href="<?php echo $cfg_memberurl; ?>/search.php">查找好友</a></li>
        </ul>
    </div>
    <div class="uclink">
        <a href="<?php echo $cfg_memberurl; ?>/index.php">会员中心</a> | 
        <a href="<?php echo $cfg_memberurl; ?>/edit_fullinfo.php">资料</a> | 
        <a href="<?php echo $myurl;?>">空间</a> | 
        <a href="<?php echo $cfg_memberurl; ?>/index_do.php?fmdo=login&dopost=exit">退出登录</a> 
    </div>
</div><!-- /userinfo -->

以上代码定义了我们看到的登录结果的样式。
三、修改代码

知道了显示的原理,接下来我们开始实现我们的功能:

1、定义显示的地方,并指定id。

在head.htm中添加:

[/php]
2、添加JavaScript执行

    <script language="javascript" type="text/javascript">CheckLogin_head();</script>  

3、自义JavaScript的CheckLogin_head()函数

为了使代码模块化,我们定义在head.htm里。

注意:得重新包含dedeajax2.js和j.js文件,因为虽然我们之前在index.htm中定义过了,但是是引用不到的。

<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>
<script language="javascript" type="text/javascript" src="{dede:global.cfg_templets_skin/}/js/j.js" ></script>

<SCRIPT language=javascript type=text/javascript>
<!--
	function CheckLogin_head(){
	  var taget_obj_head = document.getElementById('_userlogin_head');
	  myajax_head = new DedeAjax(taget_obj_head,false,false,'','','');
	  myajax_head.SendGet2("{dede:global.cfg_cmspath/}/member/ajax_loginsta_head.php");
	  DedeXHTTP = null;
	}
-->
</SCRIPT>

4、其实第3步大家有注意到了我们是根据ajax_loginsta_head.php文件来获得结果HTML代码的。

ajax_loginsta_head.php文件是由ajax_loginsta.php 复制粘贴出来的,我们在它的基础上改为:

require_once(dirname(__FILE__)."/config.php");
AjaxHead();
if($myurl == '') exit('');

$uid  = $cfg_ml->M_LoginID;

!$cfg_ml->fields['face'] && $face = ($cfg_ml->fields['sex'] == '女')? 'dfgirl' : 'dfboy';
$facepic = empty($face)? $cfg_ml->fields['face'] : $GLOBALS['cfg_memberurl'].'/templets/images/'.$face.'.png';
?>




<div class="userinfo">
	<script type="text/javascript">
	var now=(new Date()).getHours();
	if(now>0&&now<=6){
		document.write("午夜好,");
	}else if(now>6&&now<=11){
		document.write("早上好,");
	}else if(now>11&&now<=14){
		document.write("中午好,");
	}else if(now>14&&now<=18){
		document.write("下午好,");
	}else{
		document.write("晚上好,");
	}
	</script>
    你好:<strong><?php echo $cfg_ml->M_UserName; ?></strong>,欢迎登录
	 <a href="<?php echo $cfg_memberurl; ?>/index_do.php?fmdo=login&dopost=exit">退出登录</a> 
</div><!-- /userinfo -->

OK,效果显示出来了。
四、不足

不知什么原因ajax_loginsta_head.php想显示“午夜好”“早上好”“中午好”。。。。的javascript代码,可是并没有显示出来,

由于本人刚开始研究代码,可能只是个小问题而已。如果你知道答案,请告诉我,谢谢!!!QQ:594462206

[转载](1)DedeCMS会员登录状态调用方法_云度_新浪博客

mikel阅读(1048)

[转载](1)DedeCMS会员登录状态调用方法_云度_新浪博客.

DedeCMS会员登录状态调用方法

济宁网站建设分享找到最详细的:DedeCMS会员登录状态调用方法的教程

 

由于sina博客不让写代码 所以请复制后过滤下代码  把<过滤掉样式

 

此教程图文并茂。在整个教程过程中,既有代码的详细注释,也有最终的测试效果,内容主要有:

横向样式 竖向样式

本教程我希望您能和一起同步来完成这个效果的实现过程

一、横向样式1.实现过程

第一步:我们首先新建一个空白的默认首页模板(通常为index.htm),并设置为启用状态,然后掏空里面的所有代码。

第二步:然后在<head></head>区域内加入以下代码:

<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>  

<script language="javascript" type="text/javascript">  

    function CheckLogin(){   

      var taget_obj = document.getElementByIdx_x('_userlogin');   

      myajax = new DedeAjax(taget_obj,false,false,'','','');   

      myajax.SendGet2("{dede:global.cfg_cmspath/}/member/ajax_loginsta.php");   

      DedeXHTTP = null;   

    }   

</script>

第三步:然后再在区域增加如下代码:

<div id="_userlogin">  

    <form name="userlogin" action="{dede:global.cfg_memberurl/}/index_do.php" method="POST">  

    <input type="hidden" name="fmdo" value="login" />  

    <input type="hidden" name="dopost" value="login" />  

    <input type="hidden" name="keeptime" value="604800" />  

    <ul>  

        <li>  

            <label>用户名:</label> <input type="text" name="userid" class="text" style="width:80px"/>  

        <li>  

        <li>  

            <label>密  码:</label> <input type="password" name="pwd" class="text" style="width:80px"/>  

        </li>  

        <li>  

            <label>验证码:</label><input type="text" name="vdcode" class="text" style="width:40px"/> <img id="vdimgck" align="absmiddle" onClick="this.src=this.src+'?'" style="cursor: pointer; margin-left: 0px;" alt="看不清?点击更换" src="../include/vdimgck.php"/>  

        </li>  

        <li><button type="submit" class="btn-1">登录</button> <a href="{dede:global.cfg_memberurl/}/index_do.php?fmdo=user&dopost=regnew" >注册帐号</a> <a href="{dede:global.cfg_memberurl/}/resetpassword.php">忘记密码?</a& gt;</li>          

    </ul>  

</div>  

<script language="javascript" type="text/javascript">CheckLogin();</script>  

<style>  

#_userlogin{font-size:12px; height:22px;}   

#_userlogin ul {margin:0;}   

#_userlogin ul li{ float:left; padding:0 5px;}   

#_userlogin ul li input.text{font-size:12px; height:14px;}   

</style>  

</body> 

第四步:代码添加完毕,我们生成首页或者直接浏览动态首页看看效果:

DedeCMS会员登录状态调用方法

第五步:我们输入正确的账号密码,回到首页的效果图:

DedeCMS会员登录状态调用方法

到此,我们的横向登陆样式就制作完毕了。

但是很明显,登陆后的样式非常丑陋,我们应该美化一下,但在美化之前我们应该要来了解一下代码中的含义。

2)代码解释

所谓的代码解释就是要让大家能够看得懂,所以大家可以看一下整个页面的注释版代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

<html xmlns="http://www.w3.org/1999/xhtml">  

<head>  

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  

<title>首页登陆样式测试 —— 织梦教程网(www.xuewl.com)</title>  

<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>& lt;!--这段是显示整个效果必须要存在的ajax框架-->  

<script language="javascript" type="text/javascript">  

    function CheckLogin(){ //判断是否登陆的函数   

      var taget_obj = document.getElementByIdx_x('_userlogin'); //登陆后动态加载的区块,也就是<body>区域的id="_userlogin"的所有内容   

      myajax = new DedeAjax(taget_obj,false,false,'','','');   

      myajax.SendGet2("{dede:global.cfg_cmspath/}/member/ajax_loginsta.php"); //登陆后的要显示的具体内容   

      DedeXHTTP = null;   

    }   

</script>  

</head>  

  

<body>  

<div id="_userlogin"><!--动态显示的内容区块,ID值必须与上面的document.getElementByIdx_x('_userlogin') 中 的_userlogin保持一致-->  

    <form name="userlogin" action="{dede:global.cfg_memberurl/}/index_do.php" method="POST"><!--登陆提交的处理页面-->  

    <input type="hidden" name="fmdo" value="login" /><!--定义操作为login-->  

    <input type="hidden" name="dopost" value="login" /><!--定义操作为login-->  

    <input type="hidden" name="keeptime" value="604800" /><!--记住登陆状态的时间,单位秒-->  

    <ul>  

        <li>  

            <label>用户名:</label> <input type="text" name="userid" class="text" style="width:80px"/><!--用户名-->  

        <li>  

        <li>  

            <label>密  码:</label> <input type="password" name="pwd" class="text" style="width:80px"/><!--密码-->  

        </li>  

        <li>  

            <label>验证码:</label><input type="text" name="vdcode" class="text" style="width:40px"/> <img id="vdimgck" align="absmiddle" onClick="this.src=this.src+'?'" style="cursor: pointer; margin-left: 0px;" alt="看不清?点击更换" src="../include/vdimgck.php"/>  

       </li>  

        <li><button type="submit" class="btn-1">登录</button></li>           

    </ul>  

</div>  

<script language="javascript" type="text/javascript">CheckLogin();</script><!--本函数必须加载,用于获 取上面的function CheckLogin()函数-->  

<style>  

#_userlogin{font-size:12px; height:22px;}   

#_userlogin ul {margin:0;}   

#_userlogin ul li{ float:left; padding:0 5px;}   

#_userlogin ul li input.text{font-size:12px; height:14px;}   

</style>  

</body>  

</html>  

通过上面的查看,我们已经知道要美化这个样式,只需要修改 /member/ajax_loginsta.php 文件的代码即可。

我们打开这个文件,将里面的代码全部替换为如下代码:

<?php   

require_once(dirname(__FILE__)."/config.php");   

AjaxHead();   

if($myurl == '')   

{   

    exit('');   

}   

$uid  = $cfg_ml->M_LoginID;   

  

!$cfg_ml->fields['face'] && $face = ($cfg_ml->fields['sex'] == '女')? 'dfgirl' : 'dfboy';   

$facepic = emptyempty($face)? $cfg_ml->fields['face'] : $GLOBALS['cfg_memberurl'].'/templets/images/'.$face.'.png';   

  

?>   

你好:<strong><?php echo $cfg_ml->M_UserName; ?></strong>,欢迎登录!<a href="<?php echo $cfg_memberurl; ?>/guestbook_admin.php">我的留言</a> | <a href="<?php echo $cfg_memberurl; ?>/mystow.php">我的收藏</a> | <a href="<?php echo $cfg_memberurl; ?>/index.php">会员中心</a> |  <a href="<?php echo $cfg_memberurl; ?>/edit_fullinfo.php">修改资料</a> | <a href="<?php echo $myurl;?>">空间</a> | <a href="<?php echo $cfg_memberurl; ?>/index_do.php?fmdo=login&dopost=exit">退出登录</a>   

我们也顺道来看一下修改后的效果:

DedeCMS会员登录状态调用方法

怎么样?大家知道应该如何来制作这个效果了吧。好了,我们再来看看竖向的登录框。

二、竖向登陆

(责任编辑:模板天下)

通过横向登陆的示例,其实我们很容易理解。要做一个竖向登陆的这个效果,只需要将登陆前后的样式分别修改一下即可,不需要修改其它任何功能文件。

这是我修改的竖向登陆的登录前样式:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

<html xmlns="http://www.w3.org/1999/xhtml">  

<head>  

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  

<title>首页登陆样式测试 —— 济宁网站建设(www.ji-nuo.com)</title>  

<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>& lt;!--这段是显示整个效果必须要存在的ajax框架-->  

<script language="javascript" type="text/javascript">  

    function CheckLogin(){ //判断是否登陆的函数   

      var taget_obj = document.getElementByIdx_x('_userlogin'); //登陆后动态加载的区块,也就是<body>区域的id="_userlogin"的所有内容   

      myajax = new DedeAjax(taget_obj,false,false,'','','');   

      myajax.SendGet2("{dede:global.cfg_cmspath/}/member/ajax_loginsta.php"); //登陆后的要显示的具体内容   

      DedeXHTTP = null;   

    }   

</script>  

</head>  

  

<body>  

<div id="_userlogin"><!--动态显示的内容区块,ID值必须与上面的document.getElementByIdx_x('_userlogin') 中 的_userlogin保持一致-->  

    <form name="userlogin" action="{dede:global.cfg_memberurl/}/index_do.php" method="POST"><!--登陆提交的处理页面-->  

    <input type="hidden" name="fmdo" value="login" /><!--定义操作为login-->  

    <input type="hidden" name="dopost" value="login" /><!--定义操作为login-->  

    <input type="hidden" name="keeptime" value="604800" /><!--记住登陆状态的时间,单位秒-->  

    <ul>  

        <li>  

            <label>用户名:</label><input type="text" name="userid" class="text" style="width:100px"/><!--用户名-->  

        </li>  

       <li>  

           <label>密 码:</label> <input type="password" name="pwd" class="text" style="width:100px"/><!--密码-->  

        </li>  

        <li>  

            <label>验证码:</label><input type="text" name="vdcode" class="text" style="width:40px"/> <img id="vdimgck" align="absmiddle" onClick="this.src=this.src+'?'" style="cursor: pointer; margin-left: 0px;" alt="看不清?点击更换" src="../include/vdimgck.php"/>  

        </li>  

        <li><button type="submit" class="btn-1">登录</button>                  <a href="{dede:global.cfg_memberurl/}/index_do.php?fmdo=user&dopost=regnew" >注册帐号</a> <a href="{dede:global.cfg_memberurl/}/resetpassword.php">忘记密码?</a> </li>        

    </ul>  

</div>  

<script language="javascript" type="text/javascript">CheckLogin();</script><!--本函数必须加载,用于获 取上面的function CheckLogin()函数-->  

<style>  

#_userlogin{font-size:12px; height:22px; text-align:left;}   

#_userlogin ul {margin:0;}   

#_userlogin ul li{ list-style:none; margin:0; padding:5px 0;}   

#_userlogin ul li input.text{font-size:12px; height:14px;}   

  

#_userlogin .userinfo{   

    width:220px;   

}   

#_userlogin .userinfo .welcome{   

    width:220px;   

    height:24px;   

    margin:12px auto;   

    background:#F9F9F9;   

    border-top:1px solid #EEE;   

    border-bottom:1px solid #EEE;   

    line-height:23px;   

    text-indent:10px;   

    color:#666;   

}   

#_userlogin .userinfo .welcome strong{   

    color:#F60;   

    font-weight:bold;   

}   

#_userlogin .userinfo .userface{   

    width:60px;   

    height:64px;   

    overflow:hidden;   

    padding-left:16px;   

    padding-top:2px;   

    float:left;   

}   

#_userlogin .userinfo .userface a{   

    display:block;   

    margin:0px auto;   

    text-align:center;   

}   

#_userlogin .userinfo .userface a img{   

    width:52px;   

    height:52px;   

    display:block;   

    margin:0px auto 6px;   

    padding:2px;   

    border:1px solid #DDD;   

}   

#_userlogin .userinfo .mylink{   

    width:144px;   

    float:left;   

    overflow:hidden;   

}   

#_userlogin .userinfo .mylink ul{   

    margin:0;   

    padding:0;   

}   

#_userlogin .userinfo .mylink ul li{   

    width:50%;   

    float:left;   

    line-height:21px;   

    text-indent:12px;   

    padding:0;   

}   

#_userlogin .userinfo .mylink ul li a{   

    color:#555;    

}   

.userinfo .uclink{   

    height:31px;   

    line-height:31px;   

    clear:both;   

    overflow:hidden;   

    text-align:center;   

    color:#DDD;   

}   

.userinfo .uclink a{   

    color:#690;   

    margin:0px 2px;   

}   

</style>  

</body>  

</html>

好,接下来我们看看效果:

DedeCMS会员登录状态调用方法

登陆后的显示样式我们用织梦(DedeCMS)自带的,来看看效果:

DedeCMS会员登录状态调用方法

希望能办到一些像学习dedecms的朋友。更多请关注:www.ji-nuo.com

[转载]DedeCMS V5.7使用session_register()在PHP5.4以上无法登录后台,页面无显示 | 马铖的博客-MaCheng's Blog.

mikel阅读(843)

[转载]DedeCMS V5.7使用session_register()在PHP5.4以上无法登录后台,页面无显示 | 马铖的博客-MaCheng’s Blog..

想试试织梦的产品,下载了DedeCMS V5.7版本,在本地部署后,正确登录后台的情况下页面没有任何输出和显示(错误登录或密码错误时才有显示),也没有报错。进到脚本调试,发现问题出在登录页login.php中以下部分。

login.php

...
$cuserLogin = new userLogin($admindir);
if(!empty($userid) &amp;&amp; !empty($pwd))
{
$res = $cuserLogin-&gt;checkUser($userid,$pwd);
//success
if($res==1)
{
$cuserLogin-&gt;keepUser();//此处以下无输出
if(!empty($gotopage))
{
ShowMsg('成功登录,正在转向管理管理主页!',$gotopage);
exit();
}
else
{
ShowMsg('成功登录,正在转向管理管理主页!',"index.php");
exit();
}
echo "ok";
}
...

到封装userLogin类所在的脚本userlogin.class.php中查看(路径./include/),所用的keepUser()方法代码如下:

userlogin.class.php

...
function keepUser()
{
if($this-&gt;userID != '' &amp;&amp; $this-&gt;userType != '')
{
global $admincachefile,$adminstyle;
if(empty($adminstyle)) $adminstyle = 'dedecms';

@session_register($this-&gt;keepUserIDTag);
$_SESSION[$this-&gt;keepUserIDTag] = $this-&gt;userID;

@session_register($this-&gt;keepUserTypeTag);
$_SESSION[$this-&gt;keepUserTypeTag] = $this-&gt;userType;

@session_register($this-&gt;keepUserChannelTag);
$_SESSION[$this-&gt;keepUserChannelTag] = $this-&gt;userChannel;

@session_register($this-&gt;keepUserNameTag);
$_SESSION[$this-&gt;keepUserNameTag] = $this-&gt;userName;

@session_register($this-&gt;keepUserPurviewTag);
$_SESSION[$this-&gt;keepUserPurviewTag] = $this-&gt;userPurview;

@session_register($this-&gt;keepAdminStyleTag);
$_SESSION[$this-&gt;keepAdminStyleTag] = $adminstyle;

PutCookie('DedeUserID', $this-&gt;userID, 3600 * 24, '/');
PutCookie('DedeLoginTime', time(), 3600 * 24, '/');

$this-&gt;ReWriteAdminChannel();

return 1;
}
else
{
return -1;
}
}

把@去掉,session_register()报出错误:
     Call to undefined function session_register()
证实了问题来源于此。查手册的描述如下:
“版本:(PHP 4, PHP 5 < 5.4.0)”
“本函数已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除。”

查看手册

session_register()在PHP5.4后来的版本中已经多余,可以省去而直接用$_SESSION[‘abc’] =”” ;

查看Stack Overflow关于此方法的问题。

解决方法:去掉或注释掉所有的session_register(),改用直接存$_SESSION数组。

keepUser()部分

...
//session_register($this->keepUserIDTag);
$_SESSION[$this->keepUserIDTag] = $this->userID;
 
//session_register($this->keepUserTypeTag);
$_SESSION[$this->keepUserTypeTag] = $this->userType;
 
//session_register($this->keepUserChannelTag);
$_SESSION[$this->keepUserChannelTag] = $this->userChannel;
 
//session_register($this->keepUserNameTag);
$_SESSION[$this->keepUserNameTag] = $this->userName;
 
//session_register($this->keepUserPurviewTag);
$_SESSION[$this->keepUserPurviewTag] = $this->userPurview;
 
//session_register($this->keepAdminStyleTag);
$_SESSION[$this->keepAdminStyleTag] = $adminstyle;
...

修改后就正常显示了。

我是从织梦主页上下载的”最新”版本,很奇怪难道没有人遇到同样的问题吗。这种问题既然这里能出现,别的部分就无法保证不会有更多这样的隐患存在了。

各种红包 各种坑

mikel阅读(950)

微信叫停红包吸粉儿的规则以后,封了一批,更多的红包活动冒出来,为什么呢?因为大家都存在幻想觉得自己是那个幸运儿,各种坑、各种欢乐的玩法儿。

比如助力红包,别人帮你助力,随机增加金额,达100-105元提现,貌似看到的人都觉得自己可以达到这个提现金额,于是各种转发拉人为自己的那100元红包梦,可偏偏到了快100得时候,最后一个人帮助后,偏偏金额不到100-105元之间,于是你就不能领取红包,你还可以继续冲击200-205的提现区间,系统在最后的时候会核算你的金额,故意给你加上超出提现范围的金额,让你永远提现不了,这就是没有天上掉红包得事儿,如果你认真了,那么你就输了!

反观支付宝红包来说,那就真得是不坑爹,只讲技术了,那红包君出现得比刷屏还快,四手联弹都点不到,这是在考验神经反射吗?!各种全军覆没!

173278246.jpg

网络太虚拟 现实人性被严重的高估了

mikel阅读(1068)

网络太虚拟,要么将人性的阴暗面暴露出来,要么就是将人性的美好的一面无限放大。

反观现实中的人性,反倒是被展露无遗,你想不到的极品人性的人,都能出现,真得很奇葩的玩笑,让你一下子相信这个世界上真得什么人都有,过去自己对人性的评价绝对是高估了,就像电影《人类清除计划》中设定的清除日一样,突然有个事件把形形色色的人群的人性的阴暗的一面拿出来晒晒得时候,当时就会让所有人瞠目结舌!这就是人性!

网络从电商到微商,再到O2O所有新的模式,都低估了人性,因为网络虚拟掩盖了人性,结果明显被高估了人性,于是出现刷单、假货、作弊等等一系列让人瞠目结舌的人出现,ID背后的人性被掩盖。

反观小米真心得不容易,做到一众粉丝真心得帮着摇旗呐喊真得是难得,因为能聚集一帮人品好的粉丝不容易,很多时候是鱼龙混杂让人无法掌控。

640

[转载]android实现类似于支付宝余额快速闪动的效果 - lixiaodaoaaa - 博客园

mikel阅读(1021)

[转载]android实现类似于支付宝余额快速闪动的效果 – lixiaodaoaaa – 博客园.

效果如下:

  此图片不会动,但实际上是会快速跳动的。 

之前看到有支付宝的效果非常牛逼。就是进去看到余额呼噜噜的直接上蹿下跳到具体数字,效果帅,但不知道怎么实现,最近终于知道了。

image

思路:

首先经常用到倒计时操作。这个类就是 CountDownTimer.Android自带的。继承此类。无非就是跳动的 increase和intervel

增加的数字和间隔!你懂。继续。。然后让他快速从一定数字跳动到具体的总额数字,无废话了。。看Demo看效果

代码:

直接调用执行:

private void initAllViews() {
myDanceTimer = new DanceWageTimer(DanceWageTimer.getTotalExecuteTime(myMoney, 100), 100, tvMoney, myMoney);
myDanceTimer.start();
}

/**
* @Title getTotalExecuteTime
* @Description 得到总共执行的时间
* @param totalWage
* @return
*/
public static int getTotalExecuteTime(float totalWage, int interval) {
int wage = getIntegerOfWage(totalWage);
int startNum = getStartNum(totalWage);
int increased = getIncreased(startNum);
int result = (wage - startNum) / increased * interval;
return result;
}

Demo:下载地址:http://pan.baidu.com/s/1mgkPnHQ猛击这里

当营销遭遇人性 奇葩出现了

mikel阅读(936)

很多时候做营销也无法估计到人性的各个方面,也无法囊括所有人,总是会有那么多奇葩出人意料的出现在你的眼前,成为经典个例,一下子就让你目瞪口呆,不可思议的哀叹:居然还有这样的人?!

640

营销方案都是人做的,但是就是缺陷在此,不可避免的从个人出发去策划和估计别人的感受,这个出发点就是错的,你根本不清楚别人会怎么对待你的这次营销,至于效果就可想而知,那如果这么说就不要做营销了,反正都是一厢情愿,控制不了,也没有效果,结论是恰恰相反,想要面面俱到的做个完美的营销方案,不如彻底的做个可以掌控的营销。

很多时候人得变数最大,无法估计的人性。

 

如何转换微信活动的参与者到关注者

mikel阅读(1064)

微信活动总是那么吸引人,可很多时候都是显得热闹,实际上却很少有人持续关注公众号,导致转化率很低,不是说活动不到位,是转换方式不对,要获得好的转化率,最起码要做好线下几个环节。

1.良好的客服系统,要能够及时反馈和应答来访的人群,让人感觉很舒心,很正规。

2.线下如何展示自己给来访的客户,从微信活动开始之初,就要做好线下的互动,比如组建线下的活动聚会,或者组织线下活动,来支持线上活动,达到线下配合线上,互相推广,更多的时候是在线下做功夫。

3.活动得的可持续性,从线下开始,一次成功的活动,很多时候会聚集很多粉丝,如何将这些热心的人转换为铁杆儿粉丝,就要有后续活动,让这些热心粉丝出谋划策提出好的活动想法,积极听取意见,或者给予奖励,提高粉丝的参与感,这样就会出现口碑效应,让活动不只是三分钟热度。

总结了上面三点,最后一个就是最重要的自身的服务或者产品质量一定要过硬,否则再好的活动也获得不了好的转化率,只能是伤人八百自损八千的打法,内功硬才能带来好口碑。

 

gagake

微信公众号加入视频功能为哪出

mikel阅读(950)

微信公众号的信息里面增加了可以将订阅者发送的视频消息转存到素材库的功能,这样发布信息的时候可以添加视频到信息中,一下子又丰富了很多内容,不知道微视会怎么看,同时一家的产品这竞争还真是让人惊讶。

自定义回复中也能添加视频了,这下再也不是冷冰冰的文字了,不知道接下来是不是微信要整治视频内容,是迟早的事儿,不过就看微信如何把控视频的来源了,从微视和本地上传视频到微信平台,如何审核。

QQ截图20150207171536

视频营销再次被微信挑逗起来,不久微信公众号上就会满眼 视频信息了,毕竟大家的耐心会越来越少,看文字不如看视频有兴趣,更符合人性。

0

红包怎么玩儿 微信有话说

mikel阅读(994)

微信公众号一则《微信公众平台关于抢红包等违规行为处罚规则公示》让那些打着发红包的名义,暗地里吸粉儿,加关注的被制止了,微信不会允许无节操的拉粉儿行为,具体细则如下:

春节临近,微信公众平台发现部分商家试图通过“合体抢红包”等营销活动进行诱导分享、诱导关注快速获得粉丝以及谋取不当利益。经微信团队核实,此类行为已违反公众平台运营规范,并且存在涉嫌欺诈用户、收集用户隐私数据等恶意行为。

为保护用户体验,即日起,公众平台将对涉及此类行为的账号,按情节严重性进行封号及删除粉丝处罚。

0

可见微信为了维护生态圈会严格禁止各种营销行为,任何可能做文章的地方都会被规范化,红包这么疯狂的发下去,多少人又会想出新的招数来应对微信的底线,不得而知,反正出来混迟早要还的。

反观支付宝的红包玩法儿多样化,相比微信要含蓄得多,有着实名认证得一道屏障,又加上了来往转账的好友限制,让人最起码感觉红包发起来踏实点儿,那口令红包就有点儿让人摸不着头脑的感觉,不过效果倒是挺疯狂。

有了红包这个年估计要热闹不少,玩法儿很多,如何应用还不触碰底线,就看各位大神如何操作了,拭目以待吧!