设为首页收藏本站关注微信<<< 抵制 IE6 人人有责 >>>
搜索
热搜: 活动 交友 discuz
查看: 2019|回复: 1
打印 上一主题 下一主题

[dedecms] AJAX来判断dedecms用户是否登录

[复制链接]
跳转到指定楼层
楼主
发表于 2015-8-16 07:35:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关键字描述:是否 登录 用户 判断 " <   > class name

Dedecms默认模板内容页评论处有个不足的地方,就是用户登录之后还会出现那个提示用户登录的框子,天涯这里给出了以下解决方案,如果喜欢的朋友可以拿去。

首先我们给内容页模板写上一段JS脚本代码,通过AJAX来判断用户是否登录,从其中提取用户登录信息,JS代码如下,将其插入到<head></head>之间。

JS代码:
Copy code
  1. <script language="javascript" src="{dede:global name='cfg_cmspath'/}/include/dedeajax2.js"></script>
  2. <script language="javascript">
  3. function CheckUser(){
  4. var taget_obj = document.getElementById('_userboxform');
  5. myajax = new DedeAjax(taget_obj,false,false,"","","");
  6. myajax.SendGet2("{dede:global name="cfg_memberurl"/}/userboxsta.php");
  7. DedeXHTTP = null;
  8. }
  9. </script>
复制代码

然后我们修改下内容页部分的代码
找到:
  1. <div class="userbox">
  2. <dl>
  3. <dd class="mtop">
  4. <strong>用户名:</strong><input name="username" class="username" type="text" maxlength="20" />
  5. <strong>密码:</strong><input name="pwd" class="password" type="password" maxlength="20" />
  6. </dd>
  7. 将其修改为
  8. <div class="userbox">
  9. <dl>
  10. <dd class="mtop">
  11. <span id="_userboxform">
  12. <strong>用户名:</strong><input name="username" class="username" type="text" maxlength="20" />
  13. <strong>密码:</strong><input name="pwd" class="password" type="password" maxlength="20" />
  14. </span>
  15. </dd>
复制代码



即加上
  1. <span id="_userboxform">
复制代码

,用于判断用户是否已经登录。

下面我们来写一个PHP文件,用户传送数据,将其保存为/member/userboxsta.php,其代码如下:

Copy code
  1. <?php
  2. header("Pragma:no-cache\r\n");
  3. header("Cache-Control:no-cache\r\n");
  4. header("Expires:0\r\n");
  5. header("Content-Type: text/html; charset=gb2312");
  6. //系统设置为维护状态可访问
  7. $cfg_IsCanView = true;
  8. require_once(dirname(__FILE__)."/../include/inc_memberlogin.php");
  9. $cfg_ml = new MemberLogin();
  10. if(empty($cfg_ml->M_ID)){ echo ""; exit(); }
  11. $uid = $cfg_ml->M_LoginID;
  12. ?>
  13. <strong>欢迎您</strong>[<?php echo $cfg_ml->M_UserName?>],现在你可以直接发布留言
复制代码

这样,重新更新下HTML,然后登录用户看看,是不是那个小bug解决了啊。
引申:Dedecms很多东西可以拿来借用,这个BUG修复方法其实使用的是用户登录样例,大家可以更深入研究Dedecms,其乐无穷。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享淘帖
回复

使用道具 举报

沙发
 楼主| 发表于 2015-8-16 07:38:02 | 只看该作者
在使用dedecms的会员功能时,最重要的一点应该就是登录了,在网站上怎么才能判断用户已经登录,再将现在登录的地方替换为用户登录后的信息之类的,其实dedecms自带的模版中就有这个方法,济宁网站建设(基诺互联)提出汇总如下:
首先确定没有删除dedeajax2.js文件,具体代码如下:在head中写入下列代码:

  1. <script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js">     
  2. <script language="javascript" type="text/javascript">     
  3.     function CheckLogin(){      
  4.       var taget_obj = document.getElementByIdx_x_xx_x('_userlogin');      
  5.       myajax = new DedeAjax(taget_obj,false,false,'','','');      
  6.       myajax.SendGet2("{dede:global.cfg_cmspath/}/member/ajax_loginsta.php");      
  7.       DedeXHTTP = null;      
  8.     }      
  9. </script>
复制代码



在需要增加登录和显示会员信息的地方添加:
  1. <div id="_userlogin">     
  2.    <form name="userlogin" action="{dede:global.cfg_memberurl/}/index_do.php" method="POST">     
  3.     <input type="hidden" name="fmdo" value="login" />     
  4.     <input type="hidden" name="dopost" value="login" />     
  5.     <input type="hidden" name="keeptime" value="604800" />     
  6.     <ul>     
  7.         <li>     
  8.             <label>用户名:</label> <input type="text" name="userid" class="text" style="width:80px"/>     
  9.         <li>     
  10.         <li>     
  11.             <label>密  码:</label> <input type="password" name="pwd" class="text" style="width:80px"/>     
  12.        </li>     
  13.         <li>     
  14.             <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"/>     
  15.         </li>     
  16.         <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>            
  17.     </ul>     
  18. </div>     
  19. <script language="javascript" type="text/javascript">CheckLogin();</script>
复制代码





回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|手机版|Archiver|源于生活(个人生活娱乐工作的笔记)css3,html5,学习笔记    

GMT+8, 2024-4-20 06:05 , Processed in 0.093600 second(s), 28 queries .

Powered by Mr.Kevin-ying

© 2004-2015

快速回复 返回顶部 返回列表