$user->logout();
show_message($_LANG['logout'] . "$user->ucdata", $_LANG['back_home_lnk'], 'index.php', 'info', true);
ecshop類:
1. $user是ecshop類的實例;
2. show_message方法定義在lib_main.php中,將傳入的參數處理后輸出到message.dwt模板;
3. "$user->ucdata"被原封輸出到模板上;
4.$user->logout()的作用是清楚COOKIE和SESSION,以及同步退出UCENTER;
uc_call()函數:
1. 退出UCENTER調用的代碼是uc_call("uc_user_synlogout"),執行后回返回一些信息,我的實驗中返回的是404錯誤頁面的HTML,可能和我講UCENTER部署在ECSHOP的子目錄中有關,因不影響目前的使用,所以沒有深究!
2. uc_call函數定義在lib_common.php中,其內調用了restore_error_handler、call_user_func_array、set_error_handler三個函數。call_user_func_array函數定義在uc_client/client.php,可以理解為是UCENTER的API的內容;其余兩個函數是PHP錯誤處理機制的一部分。http://cn2.php.net/restore_error_handler
show_message()函數:
1. show_message的最后一個參數指明頁面是否自動返回指定頁面,其處理是通過以下代碼完成的:
{if $auto_redirect}
<meta http-equiv="refresh" content="3;URL={$message.href}" />
{/if}
如果沒有指明自動返回的頁面,$message.href的值為'javascript:history.back()',表明HTML的meta中可以執行JS腳本;
2. 倒數第二個參數type,取值范圍是warning, error, info,可以用于在message.dwt中根據信息類型顯示不同的圖示,但ECSHOP當前未利用此參數;
編碼問題:
上午在使用Firefox的“Open With Editor”功能時,發現打開的文件中,漢字全部是亂碼,于是搜索了一下編碼的知識。發現網路上,有一些意見認為,GB2312編碼對應的"CODE PAGE"是CP 936,而我在一個名為e-TextEditor中實驗看到,GB3212對應WINDOWS 936, 而GBK對應CP 936,于是上網繼續求證,看到GB2312對應CP 12936,但在e-TextEditor編輯器中并未有此代碼頁可選,所以我姑且草草認為CP 12936與WINDOWS 936等價,不想再深究了!
然而,亂碼問題并未因此番調查而解決!我使用的ECSHOP是GBK編碼,我將自己使用的所有編輯器全部設為GB2312編碼(在Notepad++中是“字符編碼切換為ASCII碼”,尚未明確其與GBK以及GB2312的嚴格關系),FTP上傳設定也為GB2312編碼,結果是,IE和Firefox中均無亂碼,但在使用Firefox的“Open With Editor”功能時,出現在編輯器中卻是亂碼,這時無論我怎樣設定編輯器的編碼,都沒有將亂碼消解!真是奇哉怪也(這兩天正看狄仁杰劇集的緣故:)