dedecms 会员登陆后不显示登陆状态的如何解决方法(AJAX 弹出式登陆框)

过去的习惯,决定今天的你,所以,过去的懒惰,决定你今天的一败涂地。人来到这世界后,命运注定了他必须要拼搏,奋斗,坚持,勇敢地走下去,走出属于自己的道路,没有人能不劳而获。

使用官方的登陆方法:

网页显示登陆状态方法 ============================= 网页首先需要调用默认的<script language="javascript" src="/include/dedeajax2.js><script> 然后网页里head部分加入 <script language="javascript" type="text/javascript"> function CheckLogin(){ var taget_obj = document.getElementById('_loginform'); myajax = new DedeAjax(taget_obj,false,false,"","",""); myajax.SendGet("/member/loginsta.php"); } </script> 可将此JS写入你的JS文件中 其中 _loginform是网页中显示登陆信息的表格的id /member/loginsta.php是登陆信息的页面 你可以修改这个页面,只调用你想要的信息. 在网页中加入以上JS以后 只需要再在网页中加入

  1. <span id="_loginform">
  2. <div class="rlist">
  3. <form name='form1' method='POST' action='{dede:field name='memberurl'/}/index_do.php'>
  4. <input type="hidden" name="fmdo" value="login">
  5. <input type="hidden" name="dopost" value="login">
  6. <input type="hidden" name="gourl" value="">
  7. <div class="title">会员登陆</div>
  8. <div class="rbox userlogin">
  9. <dl>
  10. <dt>用户名:</dt>
  11. <dd><input name="userid" class="username" type="text" maxlength="20" /></dd>
  12. </dl>
  13. <dl>
  14. <dt>密码:</dt>
  15. <dd><input name="pwd" class="password" type="password" maxlength="20" /></dd>
  16. </dl>
  17. <dl>
  18. <dt>验证码:</dt>
  19. <dd>
  20. <input name="vdcode" class="gdcode" type="text" size="4" maxlength="4" />
  21. <img src="{dede:global name='cfg_cmspath'/}/include/validateimg.php" alt="gdcode" />
  22. </dd>
  23. </dl>
  24. <div class="ulsubmit">
  25. <input type="submit" value="登陆" class="submit" />
  26. <a rel="nofollow noopener noreferrer" href="{dede:field name='memberurl'/}/index_do.php?fmdo=user&dopost=regnew">注册帐号</a>
  27. </div>
  28. </div>
  29. </form>
  30. </div>
  31. </span>
  32. <script language="JavaScript">CheckLogin();</script>

出现以下问题:

1、根本不显示登陆框,且版面错位;

2、注册一个会员后,登录,提示登录成功,5秒后跳转到会员中心,还是没登陆的样子,直接进入会员中心,显示已经登录上了,看来是程序的问题?

经过修改后仍无法解决,于是采用以下方法:

1.在模板页</head>上加入以下代码: <link rel="nofollow noopener noreferrer" href="/style/window.css" rel="stylesheet" type="text/css" /> <script src="/style/js/jquery.js" type="text/javascript"></script>

2.在页面中需要AJAX登录的地方加入如下代码: <font id="sp_login"></font>

<div class="window" style="width: 300px; top: 200px; position: absolute; display: none; z-index: 10000;" id="div_site_login"> <a class="close" rel="nofollow noopener noreferrer" href="javascript:close_site_login();"><img src="/style/images/icon_close.gif"></a> <h6>用户登陆</h6> <div class="wdmain"> <div class="tipsbox" style="display: none;"></div> <p class="loginp">用户名:<input class="winpA" type="text">&nbsp;</p> <p class="loginp">密&nbsp;&nbsp;码:<input class="winpA" type="password">&nbsp;</p> <p class="loginbtn"><a rel="nofollow noopener noreferrer" href="javascript:go_reg()"><img src="/style/images/btn_reg_s.gif" width="85" border="0" height="28"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a rel="nofollow noopener noreferrer" href="javascript:login_site()"><img src="/style/images/btn_login_s.gif" width="85" border="0" height="28"></a></p> </div> </div> <script src="/style/js/head.js" type="text/javascript"></script>

在member目录里建立两个文件:

toplogin.php

代码如下:

<?php require_once(dirname(__FILE__)."/config.php"); if($s==2) { $S = $cfg_ml->ExitCookie(); }

//未登录显示的head if(!$cfg_ml->IsLogin()) { echo "<a rel="nofollow noopener noreferrer" href='javascript:show_site_login();'>登陆</a><a rel="nofollow noopener noreferrer" href='javascript:go_reg();'>注册</a>";

} //登录后显示的head else { echo "<span class='user'>尊敬的<a rel="nofollow noopener noreferrer" href='$myurl' target='_blank'>$cfg_ml->M_UserName</a>,欢迎光临<font color='#FF0000'></font> <a rel="nofollow noopener noreferrer" href='$cfg_memberurl'>控制面板</a> | <a rel="nofollow noopener noreferrer" href='javascript:ss_login(2);'>退出</a></span>"; } ?>

toplogin_do.php

代码如下:

<?php require_once(dirname(__FILE__)."/config.php"); $userid = $_POST['userid']; $userid = iconv('utf-8', 'gb2312', $userid ); $pwd = $_POST['pwd']; $pwd = iconv('utf-8', 'gb2312', $pwd ); /********************* function login() *******************/ $rs = $cfg_ml->CheckUser($userid,$pwd); if($rs==0) { echo '2'; } else if($rs==-1) { echo '2'; } else if($rs==-2) { echo ''; } else { echo ''; } ?>

建立style目录(图片和CSS我省略了),下有JS目录有两个文件

head.js

代码如下:

var s_nv=location.href; var cur_obj; if(s_nv.indexOf('news')!=-1) { $('#div_menu a').eq(1).attr('class','menuAon'); cur_obj=$('#div_menu a').eq(1); } else if(s_nv.indexOf('webgame')!=-1) { $('#div_menu a').eq(2).attr('class','menuAon'); cur_obj=$('#div_menu a').eq(2); } else if(s_nv.indexOf('flash')!=-1) { $('#div_menu a').eq(3).attr('class','menuAon'); cur_obj=$('#div_menu a').eq(3); } else { $('#div_menu a').eq(0).attr('class','menuAon'); cur_obj=$('#div_menu a').eq(0); }

$('#div_menu a').mouseover(function() { $(this).attr('class','menuAon').siblings().attr('class','menuA'); });

$('#div_menu').mouseout(function() { cur_obj.attr('class','menuAon').siblings().attr('class','menuA'); });

ss_login(1);

function ss_login(t) { $.ajax( { type: "POST", url: '/member/toplogin.php', data: 's='+t, success: function(result) { $('#sp_login').html(result); close_site_login(); } }); }

function show_center() { if($("#dd_light").length==0) { var html='<div id=dd_light style="display:none;z-index: 9998;filter: alpha(opacity=70);left: 0px;position: absolute;top: 0px;background-color: #ccc;moz-opacity: 0.8;opacity: .80;"></div>'; $(document.body).append(html); $('#dd_light').css('width',document.body.scrollWidth+'px'); $('#dd_light').css('height',document.body.scrollHeight+'px'); } $('#dd_light').show(); }

function login_site() { var tip=$('#div_site_login div').eq(1); tip.show(); var username=$('#div_site_login input').eq(0).val(); var pwd=$('#div_site_login input').eq(1).val(); if(username=='') { tip.text('请输入用户名!'); return; } if(pwd=='') { tip.text('请输入密码!'); return; } tip.show(); tip.text('正在验证登录信息...'); $.ajax( { type: "POST", url: '/member/toplogin_do.php', data: 'userid='+username+'&pwd='+pwd, success: function(result) { if(result.indexOf('2')!=-1) { tip.text('验证失败,请重新输入!'); return; } ss_login(1); } }); }

function show_site_login() { show_center(); $('#div_site_login').css("left",(($(document).width())/2-(parseInt($('#div_site_login').width())/2))+"px"); $('#div_site_login').show(); return; }

function close_site_login() { $('#dd_light').hide(); $('#div_site_login').hide(); $('#div_site_login div').eq(1).hide(); $('#div_site_login input').eq(0).val(''); $('#div_site_login input').eq(1).val(''); $('#div_site_login input').eq(2).val(''); return; }

$(function() { $('body').keydown(function(e) { if(e.keyCode==13) { if($('#div_login').css('display')!='none'&&$('#div_login').length!=0) { login(); } else if($('#div_site_login').css('display')!='none') { login_site(); } else if($('#index_search').val()!='站内搜索'&&$('#index_search').length!=0) { go_search(); } else if($('#search_news').val()!=''&&$('#search_news').length!=0) { location='/news/search.php?s='+$('#search_news').val(); } else if($('#s_text').val()!=''&&$('#s_text').length!=0) { t_search(); } } }); });

function go_reg() { location='/member/index_do.php?fmdo=user&dopost=regnew'<!--+location.href-->; return; }

$("#site_gd").jCarouselLite( { vertical:true, auto:3000, speed:1000, visible: 1 });

另一个是jquery本身的文件jquery.js

OK,搞定!

到此这篇关于dedecms 会员登陆后不显示登陆状态的如何解决方法(AJAX 弹出式登陆框)就介绍到这了。美丽让男人停下,智慧让男人留下。更多相关dedecms 会员登陆后不显示登陆状态的如何解决方法(AJAX 弹出式登陆框)内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

标签: 方法 会员登陆