• [ECSHOP挖寶]用戶注銷過程


    $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”功能時,出現在編輯器中卻是亂碼,這時無論我怎樣設定編輯器的編碼,都沒有將亂碼消解!真是奇哉怪也(這兩天正看狄仁杰劇集的緣故:)

  • 相关阅读:
    中科大算法分析与设计分布式算法复习知识点
    记录一些实用网站
    《TensorFlow机器学习项目实战》pdf及源码
    DevC++连接MySQL可用详细教程
    【转】MySQL合理使用索引
    【原】基于Feign 重写自定义编码器
    【原】logback实现按业务输出到对应日志文件
    【原】MDC日志链路设计
    关于看源码的心得体会
    【原】基于Spring实现策略模式
  • 原文地址:https://www.cnblogs.com/yicone/p/1319536.html
Copyright © 2020-2023  润新知