原本的 ecshop 會員登入都是先進入登入頁面,因此有些模板會將它改成直皆可輸入帳號密碼的介面,訪客可以直接登入,而不需先進入登入頁面
.jpg)

ecshop 會員登入的頁面是在 library/page_header.lbi ,然後透過 insert 動態的貨得訪客的登入訊息,再經由 library/member_info.lbi 顯示出來,因為每個模板頁面都會加入 library/page_header.lbi ,因此凡是放在 library/page_header.lbi 內的元素,都可已顯示在每個頁面,打開 library/member_info.lbi ,原本的程式碼可能像這樣(依使用模板而定):
{if $user_info}
<font style="position:relative; top:10px;">
{$lang.hello},<font class="f4_b">{$user_info.username}</font>, {$lang.welcome_return}!
<a href="user.php">{$lang.user_center}</a>|
<a href="user.php?act=logout">{$lang.user_logout}</a>
</font>
{else}
{$lang.welcome}&nbsp;&nbsp;&nbsp;&nbsp;
<a href="user.php"><img src="images/bnt_log.gif" /></a>
<a href="user.php?act=register"><img src="images/bnt_reg.gif" /></a>
{/if}
改成
{if $user_info}
<font><b>{$user_info.username}</b>&nbsp;{$lang.hello}&nbsp;{$lang.welcome_return}!</font>
<a href="user.php">{$lang.edit_user_info}</a>
<a href="user.php?act=logout">{$lang.user_logout}</a>
{else}
{insert_scripts files='transport.js'}
<form id="ECS_LOGINFORM" name="ECS_LOGINFORM" method="post" action="">
帳號: <input name="username" type="text" class="UserInput" size="10" tabindex="1" value="{$ecs_username|escape}" />
密碼: <input name="password" type="password" size="10" tabindex="2" />
<!-- 判斷是否啟用驗證碼{if $enabled_captcha} -->
<img src="captcha.php?is_login=1&{$rand}" alt="captcha" style="vertical-align: middle;cursor: pointer;" onClick="this.src='captcha.php?is_login=1&'+Math.random()" />&nbsp;&nbsp;<input type="text" size="4" name="captcha" value="{$lang.comment_captcha}" onfocus="if (this.value=='{$lang.comment_captcha}')this.value=''" onblur="if (this.value=='')this.value='{$lang.comment_captcha}'" class="UserInput" style="width:60px;" />
<!--{/if}-->
<a href="javascript:void(0);" onclick="signIn()">登入</a>
<a id="header_UserRegister" href="user.php?act=register">註冊</a>
</form>
{literal}
<script type="text/javascript">
/**
* 會員登錄
*/
function signIn()
{
var frm = document.forms['ECS_LOGINFORM'];
if (frm)
{
var username = frm.elements['username'].value;
var password = frm.elements['password'].value;
var captcha = '';
if (frm.elements['captcha'])
{
captcha = frm.elements['captcha'].value;
}
if (username.length == 0 || password.length == 0)
{
alert("{$lang.empty_username_password}");
return;
}
else
{
Ajax.call('user.php?act=signin', 'username=' + username + '&password=' + encodeURIComponent(password) + '&captcha=' + captcha, signinResponse, "POST", "TEXT");
}
}
else
{
alert('Template error!');
}
}
function signinResponse(result)
{
var userName = document.forms['ECS_LOGINFORM'].elements['username'].value;
var mzone = document.getElementById("ECS_MEMBERZONE");
var res = result.parsejsON();
if (res.error > 0)
{
// 登錄失敗
alert(res.content);
if(res.html)
{
mzone.innerhtml = res.html;
document.forms['ECS_LOGINFORM'].elements['username'].value = userName;
}
}
else
{
if (mzone)
{
mzone.innerhtml = res.content;
evalscript(res.ucdata);
}
else
{
alert("Template Error!");
}
}
}
</script>
{/literal}
{/if}
{if $user_info}如果是登入會員
{$user_info.username} 會員帳號
{$lang.hello} {$lang.welcome_return} 歡迎詞
{$lang.edit_user_info} 會員中心
{$lang.user_logout} 登出
{else}
{insert_scripts files='transport.js'} 導入javascript檔案
{$ecs_username|escape} 帳號
{if $enabled_captcha} 判斷是否啟用驗證碼
完成之後外觀因模板的關係,或多或少都需要修改一下[strong]html[/strong]...