分析ecmall中$this->visitor

2009-11-25 09:30 来源:www.chinab4c.com 作者:ecshop专家

     ecmall中往往会看到这么条代码,$this->visitor->has_login.这个变量的意思是表示登陆否。其实你在ecmall电子商务系统中,你就能清楚的发现。这条语句就是用来处理验证登陆信息的。

    找到ecmall中的includes/module.base.php中的以下代码

    function AdminbaseModule()
        {
            define_module();
            Lang::load(module_lang('common'));
            $this->visitor =& env('visitor');
            parent::__construct();
        }

       他就是通过调用&env方法来初始化$this->visitor的。再看includes/global.lbi.php中的env函数

       function &env($key, $val = null)
{
    $vkey = $key ? strtokey("{$key}", '$GLOBALS[\'EC_ENV\']') : '$GLOBALS[\'EC_ENV\']';
    if ($val === null)
    {
        /* 返回该指定环境变量 */
        $v = eval('return ' . $vkey . ';');

        return $v;
    }
    else
    {
        /* 设置指定环境变量 */
        eval($vkey . ' = $val;');

        return $val;
    }
}

       他也就是无非调用了$GLOBALS数组中的数据。如果你打印print_r(env('visitor'));.那么你可以看到以下代码.

       UserVisitor Object ( [_info_key] => user_info [has_login] => [info] => Array ( [user_id] => 0 [user_name] => 游客 ) [privilege] => [_errors] => Array ( ) [_errnum] => 0 )

       里面的数据,你可以通过get方式得到

       来源:中国B4C电子商务