大佬教程收集整理的这篇文章主要介绍了UCHome中关于公共函数(function_common.php)页面的代码分析(一),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
概述
view
sourceprint?01.<?
php02./*03. [UCenter Home] (
C) 2007-2008 Comsenz Inc.04. $Id: function_common.
php 2009-10-20 21
:12:0005. @author
ymaozi06. @copyright
http://www.codedesign.cn/07. @uchome源码交流QQ群:8340026308.*/09. 10.if(!defined('IN_UCHOME
')) {11. exit('Access Denied'
);12.}13./
**14. * SQL ADDSLASHES 对sql的一些字符进行转义15. * @param
String or array $
String16. * @return
String or array17. */18.function saddslashes($
String)
{19. if(is_array($
String))
{ //如果转入的是数组则对数组中的value进行递归转义20.
foreach($
String as $key => $val)
{21.
$
String[$key] = saddslashes($val
);22.
}23.
} else
{24.
$
String = addslashes($
String
); //对单引号(')、双引号(")、反斜线()与 NUL(NULL 字符),进行转义25.
}26.
return $
String;27.}28. 29./
**30. * 取消HTML代码31. * @param
String or array $
String32. * @return
String or array33. */34.function shtmlspecialchars($
String)
{35. if(is_array($
String))
{36.
foreach($
String as $key => $val)
{37.
$
String[$key] = shtmlspecialchars($val
);38.
}39.
} else
{40.
$
String = preg_
replace('/&((#(d
{3,5}|x[a-fA-F
0-9]
{4})|[a-zA-Z][a-z
0-9]
{2,5}
);)/', '&\1',41.
str_
replace(array(
'&', '
"', '<', '>'), array(
'&', '
"', '<', '>'), $
String)
);//将传入的html中的&,",<,>,进行替换42.
}43.
return $
String;44.}view
sourceprint?001./
**002. * 清空cookie与一些判断用户登录的信息003. */004.function clearcookie()
{005. global $_SGLOBAL;006. 007. obclean(
); //清除缓存008. ssetcookie('auth', '', -86400 * 365
); //设置cookie名为auth的过期009. $_SGLOBAL['supe_uid'] = 0;010. $_SGLOBAL['supe_username'] = '';011. $_SGLOBAL['member'] = array(
); //将这些全局变量清空012.}013. 014.//cookie设置015./
**016. * 设置cookie017. * @param
String cookie名018. * @param
String cookie值019. * @param int cookie存储时间020. * @return void021. */022.function ssetcookie($var, $value, $life
=0)
{023. global $_SGLOBAL, $_SC, $_SERVER;024. setcookie($_SC['cookiepre'].$var, $value, $life?($_SGLOBAL['
timestamp']+$lif
E):0, $_SC['cookiepath'], $_SC['cookiedomain'], $_SERVER['SERVER_PORT']==443?1:0
);025.}026. 027.//028./
**029. * 创建数据库连接对象030. */031.function dbconnect()
{032. global $_SGLOBAL, $_S
c;033. 034.
include_once(S_ROOT.'./
source/class_mysq
l.php'
); //引入数据库操作类035. 036. if(empty($_SGLOBAL['db']))
{ //如果没有创建数据库对象,则创建037.
$_SGLOBAL['db'] = new db
stuff;038.
$_SGLOBAL['db']->charset = $_SC['dbcharset'];039.
$_SGLOBAL['db']->connect($_SC['dbhost'], $_SC['dbuser'], $_SC['dbpw'], $_SC['dbname'], $_SC['pconnect']
);040.
}041.}042. 043.//获取在线IP044.function getonlineip($format
=0)
{045. global $_SGLOBAL;046. 047. if(empty($_SGLOBAL['onlineip']))
{048.
if(getenv('
http_CLIENT_IP') && strcasecmp(getenv('
http_CLIENT_IP'), 'unknown
')) {049.
//如果存在客户端ip,并通过strcasecmp(),比较不等于unknown,则获取客户端ip050.
$onlineip = getenv('
http_CLIENT_IP'
);051.
} elseif(getenv('
http_X_FOR
WARDED_FOR') && strcasecmp(getenv('
http_X_FOR
WARDED_FOR'), 'unknown
')) {052.
//如果存在代理ip,则获取代理ip053.
$onlineip = getenv('
http_X_FOR
WARDED_FOR'
);054.
} elseif(getenv(
'REMOTE_ADDR') && strcasecmp(getenv(
'REMOTE_ADDR'), 'unknown
')) {055.
//代理服务器 IP056.
$onlineip = getenv(
'REMOTE_ADDR'
);057.
} elseif(isset($_SERVER[
'REMOTE_ADDR']) && $_SERVER[
'REMOTE_ADDR'] && strcasecmp($_SERVER[
'REMOTE_ADDR'], 'unknown
')) {058.
$onlineip = $_SERVER[
'REMOTE_ADDR'];059.
}060.
preg_match("/[d.]
{7,15}/", $onlineip, $onlineipmatches
);061.
//通过正则检验,是否是ip地址的格式062.
$_SGLOBAL['onlineip'] = $onlineipmatches
[0] ? $onlineipmatches
[0] : 'unknown';063.
}064. if($format)
{065.
$ips = explode('.', $_SGLOBAL['onlineip']
); //将ip地址,以.为分隔存入到数组066.
for($i
=0;$i<3;$i++)
{067.
$ips[$i] = intval($ips[$i]
);068.
}069.
return sprintf('%03d%03d%13d', $ips
[0], $ips[1], $ips[2]
);//返回ip地十的前三段,03d:三位整数,如果不足刚以0填充070.
} else
{071.
return $_SGLOBAL['onlineip'];072.
}073.}074. 075.//076./
**077. * 判断当前用户登录状态078. */079.function
checkauth()
{080. global $_SGLOBAL, $_SC, $_SCONFIG, $_SCOOKIE, $_SN;081. 082. if($_SGLOBAL['mobile'] && $_GET['m_auth']) $_SCOOKIE['auth'] = $_GET['m_auth'];083. if($_SCOOKIE['auth'])
{ //如果设置了名了auth的cookie084.
@list($
password, $uid) = explode("t", authcode($_SCOOKIE['auth'], 'DECODE
')); //通过authcode()函数将加密过的auth进行解密,将解密的信息分别存在$
password与$uid中085.
$_SGLOBAL['supe
大佬总结
以上是大佬教程为你收集整理的UCHome中关于公共函数(function_common.php)页面的代码分析(一)全部内容,希望文章能够帮你解决UCHome中关于公共函数(function_common.php)页面的代码分析(一)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。