站长中国
设为首页 | 站长论坛

站长论坛 站长下载
您所在的位置: 站长中国 > 站长学院 > 网络编程 > PHP专区 >  正文

Dedecms登陆框更改教程
  2007年11月04日09:49:20  playsky 评论(0条) 字体:[ ]
相关热点:dedecms


dedecms的登陆框使用了AJAX技术,简单的说,这个技术嘛就是不用刷新就可以更改页面的内容,新手更改登陆也不需要了解太多。

往往大家更改登陆框的时候会发现,当用户登陆之后,又回到了原先那个奇丑无比的登陆界面,这是为何?

下面我们引入一些基本的代码,先拿官方发布的模板做研究:


 

这是首页模板(index.htm),我们别的先不做研究,就单单来看登陆这块:

 

   <!--
   本模板使用Ajax技术判断用户是否登录,如果你改动了模板,
   必须指定id=loginform 的区域作为返回内容
   -->
   <span id="_loginform">
   <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <form name='form1' method='POST' action='{dede:field name='memberurl'/}/index_do.php'>
<input type="hidden" name="fmdo" value="login">
<input type="hidden" name="dopost" value="login">
<input type="hidden" name="gourl" value="">
<tr>
<td height="28"> </td>
<td width="30%">用户名:</td>
<td width="63%"><input name="userid" type="text" id="userid" style="width:120px;height:20px;border:1px solid #cccccc"></td> <input type="password" name="pwd" style="width:120px;height:20px;border:1px solid #cccccc"></td>
</tr>
<tr>
<td height="28"> </td>
<td>验证码:</td>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%"><input name="vdcode" type="text" id="vdcode" style="width:60px;height:20px;border:1px solid #cccccc"></td>
<td><img name="vdcode" src="{dede:global name='cfg_cmspath'/}/include/validateimg.php" width="50" height="20" alt=""></td> 
</tr>
</table></td>
</tr>
<tr>
<td width="4%" height="57"> </td>
<td height="57" colspan="2" align="center">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" align="center">
<input name="imageField" type="image" src="{dede:field name='templeturl'/}/img/loginbt.gif" width="75" height="28" border="0">
</td>
<td> <a href="{dede:field name='memberurl'/}/index_do.php?fmdo=user&dopost=regnew"><img src="{dede:field name='templeturl'/}/img/regbt.gif" width="75" height="28" border="0"></a>
</td>
</tr>
</table></td>
</tr>
</form>
</table>


</span>
<script language="JavaScript">CheckLogin();</script>
 

这里是一个表格形式的登陆框,我们来分析下,可以看出,网页会自动执行javascript语句,执行CheckLogin();过程,我们再来看模板文件顶部


 

<script language="JavaScript">
function CheckLogin(){
var taget_obj = document.getElementById('_loginform');
myajax = new DedeAjax(taget_obj,false,false,"","","");
myajax.SendGet("{dede:global name="cfg_memberurl"/}/loginsta.php");
}
</script>
这个就是CheckLogin();过程这段的意思是首先获得一个ID为_loginform,然后通过ajax将{dede:global name="cfg_memberurl"/}/loginsta.php中的文件替换进去,在这里就是将代码中的<span id="_loginform"> </span>部分进行替换,所以这里我们知道了,要更改这个登陆文件,必须修改/member/loginsta.php这个文件,我们将其打开:

发现下面这些代码:


 

<?php
header("Pragma:no-cache\r\n");
header("Cache-Control:no-cache\r\n");
header("Expires:0\r\n");
header("Content-Type: text/html; charset=gb2312");
require_once(dirname(__FILE__)."/config_space.php");
require_once(dirname(__FILE__)."/../include/inc_memberlogin.php");
$cfg_ml = new MemberLogin();
if(empty($cfg_ml->M_ID)){ echo ""; exit(); }
$uid = $cfg_ml->M_LoginID;
$dsql = new DedeSql(false);
$spaceInfos = $dsql->GetOne("Select ID,uname,spacename,spaceimage,sex,c1,c2,spaceshow,logintime,news From #@__member where userid='$uid'; ");
if(!is_array($spaceInfos)){
 $dsql->Close(); echo ""; exit();
}
$dsql->Close();
foreach( $spaceInfos as $k=>$v){if(ereg("[^0-9]",$k)) $$k = $v; }
if($spaceimage==''){
 if($sex=='女') $spaceimage = $cfg_memberurl.'/img/dfgril.gif';

 

 else $spaceimage = $cfg_memberurl.'/img/dfboy.gif';
}  //这段代码我们不用管他,这个对我们的修改登陆框没有直接影响,不要动他就可以了,主要是下面的修改
?>
<TABLE height=84 cellSpacing=0 cellPadding=0 width=255 align=center
bgColor=#333333 border=0>
<form name='form1' method='POST' action='{dede:field name='memberurl'/}/index_do.php'><input type="hidden" name="fmdo" value="login">
<input type="hidden" name="dopost" value="login">
<input type="hidden" name="gourl" value=""><!--DWLayoutTable-->
  <TBODY>
  <TR>
    <TD vAlign=bottom align=middle width=255 height=30><SPAN
      class=white>你好,欢迎_<?php echo $cfg_ml->M_UserName?></SPAN>
       </TD>
  </TR>
         <TR>
    <TD vAlign=top align=middle height=30><SPAN class=white><a href="<?php echo $cfg_memberurl?>/guestbook_admin.php" class="mbline">[我的留言]</a> &nbsp;&nbsp;<a href="<?php echo $cfg_memberurl?>/mystow.php" class="mbline">[我的收藏]</a>&nbsp;&nbsp;<a href="<?php echo $cfg_memberurl?>/article_add.php" class="mbline">[发表文章]</a></SPAN></TD> 
   </TR>
  <TR>
    <TD vAlign=top align=middle height=30><a href="<?php echo $cfg_memberurl?>/article_add.php" class="mbline">[发表文章]</a>&nbsp;&nbsp;<a href="<?php echo $cfg_memberurl?>/index.php?uid=<?php echo $uid?>">[我的空间]</a> </TD>
  </TR>
 

  <TR>
    <TD vAlign=top align=middle height=24><div align="right"><a href="<?php echo $cfg_memberurl?>/index.php">控制面板</a> | <a href="<?php echo $cfg_memberurl?>/index_do.php?fmdo=login&dopost=exit">退出系统</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div></TD>
  </TR></FORM></TBODY></TABLE>


 

在这里就需要介绍点小知识,关于PHP的,PHP是一种编程语言,和ASP一样,功能非常强大,咱们的DEDECMS就是用PHP编写的,每种网络编程语言都有自己的标识符,搞过ASP的站长都知道,<%  %>这个中间写ASP的代码,在PHP中他的标识符就是上面红色粗体标记<?php  ?> 这个中间放PHP代码,这个代码段子里语句意思还是比较简单的<?php echo "这里是要输出的字符串,可以是变量" ?>,所以上面表格中嵌入的PHP标记到时候会自动解析为相应的字符,通过名称,以及超链接名字我们可以很简单将他们对应起来,比如第一个:

 

你好,欢迎_<?php echo $cfg_ml->M_UserName?>

 

这里的$cfg_ml->M_UserName就是存储用户名的变量,我们按照同样的方法将以下的代码进行整理。


 

当我们设计了一个新的登陆框之后,首先在代码的<head></head> 部分加上javascript语句:

 

<script language="JavaScript">
function CheckLogin(){
var taget_obj = document.getElementById('_loginform');
myajax = new DedeAjax(taget_obj,false,false,"","","");
myajax.SendGet("{dede:global name="cfg_memberurl"/}/loginsta.php");
}
</script>

然后,设计登陆框,将登陆框内容放置在一个ID='_loginform'的标记中,这里我们就用<span id="_loginform"> </span>这个 

按后我们再设计一个登陆后显示的效果,并且连接指向我们上面<?php ?>标记中的东西,然后把这些内容覆盖到/member/loginsta.php的HTML标记中,保存,登陆下看看,你的登陆框是否正常显示了。

 

 

 


</tr>
<tr>
<td height="28"></td>
<td>密 码:</td>
<td>

 

出处 lucms.com CMS教学网


浏览 playsky 的个人空间
责任编辑:

收藏本文 打印 打印本文  推荐本文 告诉好友 投稿 投稿邮箱

站长排行

学院

新闻

专栏

盈利

[揭密网络黄链]中国留学生买凶专破日本
JSP语法(6)
超强弹出窗口代码,什么都挡不住
FLASH视觉特效实例之地震效果
贴吧发帖机使用教程(绝对原创)
关于数据分页(转自www.codeproject.co
ASP实现文件直接下载
Photoshop制作光感超酷效果水晶球
 遍历ASP.NET页面控件
永远的后门[经典]+查不出的后门
淘宝网卖家公然叫卖“艳照门”照片集
驳《百度Hi面世对腾讯有利》
Google绿色专家质疑黑色背景网页节省资
国内各IT企业办公环境揭秘(多图)
阿里妈妈广告卖主全攻略
站长创业源动力 主流站长站赏析
推荐阅读:80年小子的创业道理
Discuz!6.0猛将出击 最强论坛程序酷炫
我的网络,我的团队:专访李文明
百度新闻频道改版十天 流量止跌反弹翻
ECSHOP模板制作参考文档
悬挂阿里妈妈会否被百度惩罚
阿里妈妈是否是中小站长的救世主?
最强网店ECShop发新版 众多酷炫功能给
ECSHOP模板下载
土豆网,优酷网,爆米花等视频网站采集
DedeCms模板安装/制作概述
网上商店系统巅峰对决 ECShop vs ShopE
艰难的走在创业的路上 第一天
编程中国全站采集规则
性福联盟 一个不尊重站长的联盟
大脚:日赚100元—揭露最新firefox欺骗
大脚:垃圾站超级赚钱法之二—突破“站
大脚:垃圾站超级赚钱法之——前言
迅雷联盟、快车联盟收入对比
经理人必看的十个管理网站
Google Adsense的秘密 第二版
西联汇款兑付城市查询
不用SEO取得成功的10个步骤
关于做GOOGLE的五条经验
站长学院  网页设计 建站教程 图形图象 网络编程

Photoshop CS3
Photoshop CS3
不用Photoshop
不用Photoshop

DIV+CSS的开发方式 听听另外的
虚拟主机建站动易里快速生成的
VBScript特效代码 满屏幕乱跑
牛气!一个菜鸟站长的超强网站
创建、维护一个个人博客的“投
让网站流量稳步飙升的秘籍
网站推广的基本思想

新闻线索

如果你有站长界人事变动、重组并购、变革技术出现,以及产品投诉等重要新闻线索,请告诉我们,我们会给予特别关注。
0631-3653338
站长中国编辑部
站长中国24小时新闻热线: 13256307008