分类目录归档:Uchome

近期关于uchome的小总结

1。防灌水那串字符在common.php里生成 //登录注册防灌水机if(empty($_SCONFIG['login_action'])) $_SCONFIG['login_action'] = md5(‘login’.md5($_SCONFIG['sitekey']));if(empty($_SCONFIG['register_action'])) $_SCONFIG['register_action'] = md5(‘register’.md5($_SCONFIG['sitekey'])); 2。set_time_limit(0); 设置页面不挂掉,默认是30秒 3。php连接Oracle (远程连接找网管做个端口映射) class dbo_oracle{ private $username = ‘dw’; private $password = ‘dw’; private $db = “(DESCRIPTION=(ADDRESS=(PROTOCOL =TCP)(HOST=xx.xx.xx.xx)(PORT = 1521))(CONNECT_DATA =(SID=dw)))”;  public function connect(){  $this->conn = oci_connect( $this->username, $this->password, $this->db, ‘UTF8′ );  if(empty($this->conn)){  echo ‘connect failed!’;  } } } … 继续阅读

发表在 Uchome | 标签为 , , , , , | 一条评论

【转】UCHOME2.0缓存机制分析 uchome,uchome2.0,uchome2.0分析,uchome缓存

缓存分为“模板文件缓存”、“模块数据缓存”、“系统配置缓存”以及“其他缓存” 模板文件缓存机制(采用从顶向下的方法来分析) 1:在要显示的页面通过include template($name) 语句来包含被编译后的模板文件 2:template($name)函数解释 大致过程为如果模板缓存文件不存在则重新编译模板文件,存在则直接调用缓存文件以显示 3:模板文件编译:parse_template($tpl) 传递的参数:为不包含文件类型后缀的完整文件路径 函数功能:替换掉模板标签,使其编译成PHP代码 模块数据缓存 A:管理员在后台可以设置是否进行模块缓存以及一文本模式缓存还是储存到数据库,同时还可以设置时储存到一个表还是多个表中。 若选在储存在数据库中,则被保存于cache cahe1 chae2 这些表中,若储存在文本中,则文本被存放于/data/block_cache 中。 B:设置数据被储存在config表中,一键值对的形式储存 C:所有模块缓存的更新周期是在代码中事先设定好的不能设置的,只能通过后台手动一次性的更新模块缓存, D:当手动更新缓存之后,通过block_data_cache();函数进行缓存更新,也就是清除所有模块缓存 模块缓存的产生 A:在后台数据调用功能处设置添加模块 B:之后会生成一个模块调用代码 C:模块数据被储存在block表中 未完…………… 系统配置缓存 A:管理员在后台设置好系统配置 B:数据被写入config表中 ,一键值对的形式存储 C:在common.php文件中,检测系统配置缓存文件dada_config.php是否存在,若存在则调用 不存在则生成系统配置缓存文件。$_SCONFIG数组用来储存系统配置数据的 D:其他缓存 通过该语句之后包含APP缓存与他、用户APP缓存等缓存文件 首页缓存(随便看看缓存) 首页一般是通过source/network.php文件来控制的,所以这里分析随便看看(network)的缓存 一:随便看看配置缓存 A:在管理员后台的随便看看处设置,将设置要显示的数目以及类别全部存在缓存文件 datadata_network.php 中,而不存入数据库 B:在source/network.php中调用该配置缓存文件 … 继续阅读

发表在 Uchome | 标签为 , | 留下评论

【转】Uchome 所用程序通用方法汇总

function_common.php 引用: //SQL ADDSLASHESfunction saddslashes($string) return $string; //取消HTML代码function shtmlspecialchars($string)   return $string; //字符串解密加密function authcode($string, $operation = ‘DECODE’, $key = ”, $expiry = 0) //清空cookiefunction clearcookie() //cookie设置function ssetcookie($var, $value, $life=0) //数据库连接function dbconnect() //获取在线IPfunction getonlineip($format=0) //判断当前用户登录状态function checkauth() //获取用户app列表function getuserapp($uid=0) //获取到表名function tname($name) //对话框function showmessage($msgkey, … 继续阅读

发表在 Uchome | 标签为 , , , , , | 留下评论

【转】ucenter1.5通讯过程分析

1,用户登录bbs,通过logging.php文件中,使用函数uc_user_login验证,如果验证成功,将调用函数uc_user_synlogin(位于uc_client下的client.php文件中),在这个函数中调用 uc_api_post(‘user’, ‘synlogin’, array(‘uid’=>$uid));之后向UC_API.’/index.php’传递了数据;这里的UC_API就是在config.inc.php中的定义的uc_server之URL地址2,uc_server的index.php接受参数数据,获得model为user,action为synlogin,就调用control目录下的user.php类中的onsynlogin方法,通过foreach循环,以javascript的方式通知uc应用列表中的应用同步登录;即通过get方式传递给应用目录中api下的uc.php一些数据;3,uc.php接收通知并处理get过来的数据,并在函数synlogin(位于uc.php中)通过函数_authcode加密数据(默认以UC_KEY作为密钥),用函数_setcookie设置cookie;4,各个应用在适当的文件中用对应的密钥解码上面设置的cookie,得到用户id等数据;通过这个值来判断用户是否经过其它应用登录过; ——————————————————————————————————- 不同的应用加密的函数名称可能不同,但密钥相同情况下,加密结果是一样的: uc.php里是_authcode,client.php里是uc_authcode,bbsincludeglobal.func.php里是authcodeuchomesourcefunction_common.php里是authcodesupersitefunctioncommon.func.php里是authcode —————————————————————————————————— 以discuz举例: 一、用户登录检查与用户登录验证logging.php 在bbs的logging.php中如下代码段 } elseif($action == ‘login’) { if($discuz_uid) {   $ucsynlogin = ”;   showmessage(‘login_succeed’, $indexname);} 检查用户id变量$discuz_uid是否为空来判断,用户是否登录(包括从别的应用登录。) 如果用户从bbs登录,则在登录验证成功后通过如下代码: $ucsynlogin = $allowsynlogin ? uc_user_synlogin($discuz_uid) : ”; 通知其它应用—-“用户已从bbs登录,请通知其它应用设置cookie” (uc_server通过javascript调用方式向其它应用的api/uc.php传递数据) 可以在uc应用目录下新建一个名为test.php的文件,来模拟登录成功,请求uc_server通知其它应用。文件内容为: ———————文件内容开始———————- <?phpinclude_once “config.inc.php”;include_once “./uc_client/client.php”;echo uc_user_synlogin(1);echo … 继续阅读

发表在 Uchome | 标签为 , , | 留下评论