diff --git a/src/install/sql-dftables.txt b/src/install/sql-dftables.txt index 269a2ea2..87ef058e 100755 --- a/src/install/sql-dftables.txt +++ b/src/install/sql-dftables.txt @@ -5,7 +5,7 @@ CREATE TABLE `#@__addonarticle` ( `body` mediumtext, `redirecturl` varchar(255) NOT NULL default '', `templet` varchar(30) NOT NULL default '', - `userip` char(15) NOT NULL default '', + `userip` char(46) NOT NULL default '', PRIMARY KEY (`aid`), KEY `typeid` (`typeid`) ) TYPE=MyISAM; @@ -23,7 +23,7 @@ CREATE TABLE `#@__addonimages` ( `ddmaxwidth` smallint(6) NOT NULL default '200', `pagepicnum` smallint(6) NOT NULL default '12', `templet` varchar(30) NOT NULL default '', - `userip` char(15) NOT NULL default '', + `userip` char(46) NOT NULL default '', `redirecturl` varchar(255) NOT NULL default '', `body` mediumtext, PRIMARY KEY (`aid`), @@ -40,7 +40,7 @@ CREATE TABLE `#@__addoninfos` ( `click` int(10) unsigned NOT NULL default '0', `title` varchar(60) NOT NULL default '', `litpic` varchar(120) NOT NULL default '', - `userip` varchar(15) NOT NULL default ' ', + `userip` varchar(46) NOT NULL default ' ', `senddate` int(11) NOT NULL default '0', `flag` set('c','h','p','f','s','j','a','b') default NULL, `lastpost` int(10) unsigned NOT NULL default '0', @@ -70,7 +70,7 @@ CREATE TABLE `#@__addonshop` ( `brand` varchar(250) NOT NULL default '', `units` varchar(250) NOT NULL default '', `templet` varchar(30) NOT NULL, - `userip` char(15) NOT NULL, + `userip` char(46) NOT NULL, `redirecturl` varchar(255) NOT NULL, `vocation` char(20) NOT NULL default '0', `infotype` char(20) NOT NULL default '0', @@ -97,7 +97,7 @@ CREATE TABLE `#@__addonsoft` ( `daccess` smallint(5) NOT NULL default '0', `needmoney` smallint(5) NOT NULL default '0', `templet` varchar(30) NOT NULL default '', - `userip` char(15) NOT NULL default '', + `userip` char(46) NOT NULL default '', `redirecturl` varchar(255) NOT NULL default '', PRIMARY KEY (`aid`), KEY `softMain` (`typeid`) @@ -109,7 +109,7 @@ CREATE TABLE `#@__addonspec` ( `typeid` smallint(5) unsigned NOT NULL default '0', `note` text, `templet` varchar(30) NOT NULL default '', - `userip` char(15) NOT NULL default '', + `userip` char(46) NOT NULL default '', `redirecturl` varchar(255) NOT NULL default '', PRIMARY KEY (`aid`), KEY `typeid` (`typeid`) @@ -126,7 +126,7 @@ CREATE TABLE `#@__admin` ( `email` char(30) NOT NULL default '', `typeid` text, `logintime` int(10) unsigned NOT NULL default '0', - `loginip` varchar(20) NOT NULL default '', + `loginip` varchar(46) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM; @@ -384,7 +384,7 @@ CREATE TABLE `#@__feedback` ( `typeid` smallint(5) unsigned NOT NULL default '0', `username` char(20) NOT NULL default '', `arctitle` varchar(60) NOT NULL default '', - `ip` char(15) NOT NULL default '', + `ip` char(46) NOT NULL default '', `ischeck` smallint(6) NOT NULL default '0', `dtime` int(10) unsigned NOT NULL default '0', `replycount` INT(10) UNSIGNED NOT NULL DEFAULT '0', @@ -472,7 +472,7 @@ CREATE TABLE `#@__log` ( `filename` char(60) NOT NULL default '', `method` char(10) NOT NULL default '', `query` char(200) NOT NULL default '', - `cip` char(15) NOT NULL default '', + `cip` char(46) NOT NULL default '', `dtime` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`lid`) ) TYPE=MyISAM; @@ -497,9 +497,9 @@ CREATE TABLE `#@__member` ( `safequestion` smallint(5) unsigned NOT NULL default '0', `safeanswer` char(30) NOT NULL default '', `jointime` int(10) unsigned NOT NULL default '0', - `joinip` char(16) NOT NULL default '', + `joinip` char(46) NOT NULL default '', `logintime` int(10) unsigned NOT NULL default '0', - `loginip` char(16) NOT NULL default '', + `loginip` char(46) NOT NULL default '', `checkmail` smallint(6) NOT NULL default '-1', PRIMARY KEY (`mid`), KEY `userid` (`userid`,`sex`), @@ -884,7 +884,7 @@ CREATE TABLE `#@__shops_orders` ( `price` float(13,2) NOT NULL default '0.00', `priceCount` float(13,2) NOT NULL, `state` tinyint(1) NOT NULL default '0', - `ip` char(15) NOT NULL default '', + `ip` char(46) NOT NULL default '', `stime` int(10) NOT NULL default '0', KEY `stime` (`stime`), KEY `userid` (`userid`), @@ -1089,7 +1089,7 @@ CREATE TABLE `#@__vote_member` ( DROP TABLE IF EXISTS `#@__dl_log`; CREATE TABLE `#@__dl_log` ( `id` mediumint(10) unsigned NOT NULL auto_increment, - `ip` char(16) NOT NULL, + `ip` char(46) NOT NULL, `lang` char(6) NOT NULL, `dtype` varchar(10) NOT NULL, `dltime` int(10) unsigned NOT NULL default '0', diff --git a/src/install/v57sp2_to_v6.txt b/src/install/v57sp2_to_v6.txt index 5a416916..595281ef 100644 --- a/src/install/v57sp2_to_v6.txt +++ b/src/install/v57sp2_to_v6.txt @@ -1,3 +1,17 @@ +-- 6.1.7 +ALTER TABLE `#@__addonarticle` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; +ALTER TABLE `#@__addonimages` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; +ALTER TABLE `#@__addoninfos` MODIFY COLUMN `userip` varchar(46) NOT NULL DEFAULT '' AFTER `litpic`; +ALTER TABLE `#@__addonshop` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; +ALTER TABLE `#@__addonsoft` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; +ALTER TABLE `#@__addonspec` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; +ALTER TABLE `#@__admin` MODIFY COLUMN `loginip` varchar(46) NOT NULL DEFAULT '' AFTER `logintime`; +ALTER TABLE `#@__feedback` MODIFY COLUMN `ip` char(46) NOT NULL DEFAULT '' AFTER `arctitle`; +ALTER TABLE `#@__log` MODIFY COLUMN `cip` char(46) NOT NULL DEFAULT '' AFTER `query`; +ALTER TABLE `#@__member` MODIFY COLUMN `joinip` char(46) NOT NULL DEFAULT '' AFTER `jointime`,MODIFY COLUMN `loginip` char(46) NOT NULL DEFAULT '' AFTER `logintime`; +ALTER TABLE `#@__shops_orders` MODIFY COLUMN `ip` char(46) CHARACTER NOT NULL DEFAULT '' AFTER `state`; +ALTER TABLE `#@__dl_log` MODIFY COLUMN `ip` char(46) NOT NULL AFTER `id`; + -- 6.1.0 ALTER TABLE `#@__arctype` ADD COLUMN `namegk` varchar(255) NULL AFTER `typename`, diff --git a/src/system/helpers/util.helper.php b/src/system/helpers/util.helper.php index c3d752e5..de740de2 100755 --- a/src/system/helpers/util.helper.php +++ b/src/system/helpers/util.helper.php @@ -68,7 +68,7 @@ if (!function_exists('GetCurUrl')) { if (empty($_SERVER["QUERY_STRING"])) { $nowurl = $scriptName; } else { - $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"]; + $nowurl = $scriptName . "?" . $_SERVER["QUERY_STRING"]; } } return $nowurl; @@ -88,36 +88,26 @@ if (!function_exists('GetIP')) { } if (isset($_SERVER)) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { - $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); - /* 取X-Forwarded-For中第x个非unknown的有效IP字符? */ - foreach ($arr as $ip) { - $ip = trim($ip); - if ($ip != 'unknown') { - $realip = $ip; - break; - } - } - } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { + $realip = $_SERVER['HTTP_X_FORWARDED_FOR']; + } else if (isset($_SERVER['HTTP_CLIENT_IP'])) { $realip = $_SERVER['HTTP_CLIENT_IP']; } else { - if (isset($_SERVER['REMOTE_ADDR'])) { - $realip = $_SERVER['REMOTE_ADDR']; - } else { - $realip = '0.0.0.0'; - } + $realip = $_SERVER['REMOTE_ADDR']; } } else { if (getenv('HTTP_X_FORWARDED_FOR')) { $realip = getenv('HTTP_X_FORWARDED_FOR'); - } elseif (getenv('HTTP_CLIENT_IP')) { + } else if (getenv('HTTP_CLIENT_IP')) { $realip = getenv('HTTP_CLIENT_IP'); } else { $realip = getenv('REMOTE_ADDR'); } } - preg_match("/[\d\.]{7,15}/", $realip, $onlineip); - $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0'; - return $realip; + if (filter_var($realip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6)) { + return $realip; + } else { + return 'unknown'; + } } } /** @@ -135,7 +125,7 @@ if (!function_exists('GetEditor')) { function GetEditor($fname, $fvalue, $nheight = "350", $etype = "Basic", $gtype = "print", $isfullpage = "FALSE", $bbcode = false) { if (!function_exists('SpGetEditor')) { - require_once(DEDEINC."/inc/inc_fun_funAdmin.php"); + require_once(DEDEINC . "/inc/inc_fun_funAdmin.php"); } return SpGetEditor($fname, $fvalue, $nheight, $etype, $gtype, $isfullpage, $bbcode); } @@ -168,7 +158,7 @@ if (!function_exists('GetTemplets')) { if (!function_exists('GetSysTemplets')) { function GetSysTemplets($filename) { - return GetTemplets($GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'].'/system/'.$filename); + return GetTemplets($GLOBALS['cfg_basedir'] . $GLOBALS['cfg_templets_dir'] . '/system/' . $filename); } } /** @@ -180,7 +170,7 @@ if (!function_exists('GetNewInfo')) { function GetNewInfo() { if (!function_exists('SpGetNewInfo')) { - require_once(DEDEINC."/inc/inc_fun_funAdmin.php"); + require_once(DEDEINC . "/inc/inc_fun_funAdmin.php"); } return SpGetNewInfo(); } @@ -201,7 +191,7 @@ if (!function_exists('dd2char')) { $nn = ''; for ($i = 0; $i < $slen; $i++) { if (isset($ddnum[$i + 1])) { - $n = $ddnum[$i].$ddnum[$i + 1]; + $n = $ddnum[$i] . $ddnum[$i + 1]; if (($n > 96 && $n < 123) || ($n > 64 && $n < 91)) { $okdd .= chr($n); $i++; @@ -232,9 +222,9 @@ if (!function_exists('json_encode')) { } else if (is_float($value)) { $value = floatval($value); } else if (defined($value) && $value === NULL) { - $value = strval(constant($value)); + $value = strval(constant((string)$value)); } else if (is_string($value)) { - $value = '"'.addslashes($value).'"'; + $value = '"' . addslashes($value) . '"'; } return $value; } @@ -258,9 +248,9 @@ if (!function_exists('json_encode')) { foreach ($data as $key => $val) { if (!is_NULL($val)) { if ($assoc) { - $json .= "\"$key\":".json_encode($val).","; + $json .= "\"$key\":" . json_encode($val) . ","; } else { - $json .= json_encode($val).","; + $json .= json_encode($val) . ","; } } } @@ -307,4 +297,4 @@ if (!function_exists('json_decode')) { } return $result; } -} \ No newline at end of file +}