php uc_client,uc_client/client.php 功能介绍

uc的客户端uc_clinet/client.php 功能

以uc_get_user 为例子

function uc_get_user($username, $isuid=0) {

$return = call_user_func(UC_API_FUNC, 'user', 'get_user', array('username'=>$username, 'isuid'=>$isuid));

return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return);

}

此函数调用 client.php 内部 UC_API_FUNC 函数,一般来说UC_API_FUNC 是 定值,你在客户端的后台一般设置是mysql方式的同步

那么

define('UC_API_FUNC', UC_CONNECT == 'mysql' ? 'uc_api_mysql' : 'uc_api_post');

也就是说 UC_API_FUNC 的值是 uc_api_mysql

下面看 uc_api_myql 函数

function uc_api_mysql($model, $action, $args=array()) {

global $uc_controls;

if(empty($uc_controls[$model])) {

include_once UC_ROOT.'./lib/db.class.php';

include_once UC_ROOT.'./model/base.php';

include_once UC_ROOT."./control/$model.php";

eval("\$uc_controls['$model'] = new {$model}control();");

}

if($action{0} != '_') {

$args = uc_addslashes($args, 1, TRUE);

$action = 'on'.$action;

$uc_controls[$model]->input = $args;

return $uc_controls[$model]->$action($args);

} else {

return '';

}

}

表示的是 包含了 control/$model.php 运行里面的 on_xxx 比如 onget_user 就是一例

function onget_user() {

$this->init_input();

$username = $this->input('username');

if(!$this->input('isuid')) {

$status = $_ENV['user']->get_user_by_username($username);

} else {

$status = $_ENV['user']->get_user_by_uid($username);

}

if($status) {

return array($status['uid'],$status['username'],$status['email']);

} else {

return 0;

}

}

这里明显是 $_ENV['user'] 是 model/user.php 的user类引入的

在contrl/user.php 里面看的很清楚

function usercontrol() {

parent::__construct();

$this->load('user');

$this->app = $this->cache['apps'][UC_APPID];

}

通过base类的load 函数

function load($model, $base = NULL) {

$base = $base ? $base : $this;

if(empty($_ENV[$model])) {

require_once UC_ROOT."./model/$model.php";

eval('$_ENV[$model] = new '.$model.'model($base);');

}

return $_ENV[$model];

}

那么好了,在user->get_user_by_username 和 $user->get_user_by_uid 函数里面选择一个,根据 isuid 来判断参数是否是uid,

从而到uc数据库的UC_DBTABLEPRE."members 根据uid还是username查找.得到的值被重新组织了!!!

return array($status['uid'],$status['username'],$status['email']);

如果想得到 uid ,需要从 [0] 里面的!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
make /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xproto.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/bigreq.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xc_misc.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/composite.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/damage.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/dpms.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/dri2.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/glx.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/randr.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/record.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/render.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/res.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/screensaver.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/shape.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/shm.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/sync.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xevie.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xf86dri.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xfixes.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xinerama.xml /usr/bin/python ./c_client.py -p //usr/lib/python3.8/site-packages //usr/share/xcb/xinput.xml Traceback (most recent call last): File "./c_client.py", line 1039, in <module> module.register() File "/usr/lib/python2.7/dist-packages/xcbgen/state.py", line 93, in register matcher.execute(self, self.namespace) File "/usr/lib/python2.7/dist-packages/xcbgen/matcher.py", line 115, in execute funcs[elt.tag](elt, module, namespace) KeyError: 'eventstruct' make: *** [Makefile:1018: xinput.c] Error 1
最新发布
05-24

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值