作者:白纸鹤u8_fw7 | 来源:互联网 | 2014-05-27 15:58
dedecms的登陆框使用了AJAX技术,简单的说,这个技术嘛就是不用刷新就可以更改页面的内容,新手更改登陆也不需要了解太多。往往大家更改登陆框的时候会发现,当用户登陆之后,又回到了原先那个奇丑无比的登陆界面,这是为何?下面我们引入一些基本的代码,
dedecms的登陆框使用了AJAX技术,简单的说,这个技术嘛就是不用刷新就可以更改页面的内容,新手更改登陆也不需要了解太多。
往往大家更改登陆框的时候会发现,当用户登陆之后,又回到了原先那个奇丑无比的登陆界面,这是为何?
下面我们引入一些基本的代码,先拿官方发布的模板做研究:
这是首页模板(index.htm),我们别的先不做研究,就单单来看登陆这块:
这里是一个表格形式的登陆框,我们来分析下,可以看出,网页会自动执行Javascript语句,执行CheckLogin();过程,我们再来看模板文件顶部
这个就是CheckLogin();过程这段的意思是首先获得一个ID为_loginform,然后通过ajax将{dede:global
name="cfg_memberurl"/}/loginsta.php中的文件替换进去,在这里就是将代码中的
部分进行替换,所以这里我们知道了,要更改这个登陆文件,必须修改/member/loginsta.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 [url=mailto:dede_member]dede_member[/url] 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';
} //这段代码我们不用管他,这个对我们的修改登陆框没有直接影响,不要动他就可以了,主要是下面的修改
?>
bgColor=#333333 border=0>
class=white>你好,欢迎_M_UserName?>
|
[我的留言] [我的收藏] [发表文章] |
[发表文章] [我的空间] |
|
在这里就需要介绍点小知识,关于PHP的,PHP是一种编程语言,和ASP一样,功能非常强大,咱们的DEDECMS就是用PHP编写的,每种网络编程语言都有自己的标识符,搞过ASP的站长都知道,<% %>这个中间写ASP的代码,在PHP中他的标识符就是上面红色粗体标记
这个中间放PHP代码,这个代码段子里语句意思还是比较简单的,所以上面表格中嵌入的PHP标记到时候会自动解析为相应的字符,通过名称,以及超链接名字我们可以很简单将他们对应起来,比如第一个:
你好,欢迎_M_UserName?>
这里的$cfg_ml->M_UserName就是存储用户名的变量,我们按照同样的方法将以下的代码进行整理。
当我们设计了一个新的登陆框之后,首先在代码的
部分加上Javascript语句:
然后,设计登陆框,将登陆框内容放置在一个ID='_loginform'的标记中,这里我们就用
这个
按后我们再设计一个登陆后显示的效果,并且连接指向我们上面标记中的东西,然后把这些内容覆盖到/member/loginsta.php的HTML标记中,保存,登陆下看看,你的登陆框是否正常显示了。