Enlarge ip fields to fit ipv6 (45ch, 88ch hashed) and truncate persistent id in ipless mode to this size

This commit is contained in:
Juribiyan 2018-11-25 17:28:08 +05:00
parent f1761a3921
commit 7df2b8c416
3 changed files with 16 additions and 6 deletions

View File

@ -61,7 +61,7 @@ CREATE TABLE `PREFIX_banlist` (
`type` tinyint(1) NOT NULL DEFAULT '0',
`expired` tinyint(1) NOT NULL DEFAULT '0',
`allowread` tinyint(1) NOT NULL DEFAULT '1',
`ip` varchar(50) NOT NULL DEFAULT '',
`ip` varchar(88) NOT NULL DEFAULT '',
`ipmd5` char(32) NOT NULL DEFAULT '',
`globalban` tinyint(1) NOT NULL DEFAULT '0',
`boards` varchar(255) NOT NULL DEFAULT '',
@ -231,7 +231,7 @@ CREATE TABLE `PREFIX_front` (
CREATE TABLE `PREFIX_loginattempts` (
`username` varchar(255) NOT NULL DEFAULT '',
`ip` varchar(20) NOT NULL DEFAULT '',
`ip` varchar(45) NOT NULL DEFAULT '',
`timestamp` int(20) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=KU_DBCHARSET;
@ -277,7 +277,7 @@ CREATE TABLE `PREFIX_posts` (
`subject` varchar(255) NOT NULL DEFAULT '',
`message` text,
`password` varchar(255) NOT NULL DEFAULT '',
`ip` varchar(75) NOT NULL DEFAULT '',
`ip` varchar(88) NOT NULL DEFAULT '',
`ipmd5` char(32) NOT NULL DEFAULT '',
`tag` varchar(5) NOT NULL DEFAULT '',
`timestamp` int(20) unsigned NOT NULL DEFAULT '0',
@ -387,7 +387,7 @@ CREATE TABLE `PREFIX_reports` (
`board` varchar(255) NOT NULL DEFAULT '',
`postid` int(20) NOT NULL DEFAULT '0',
`when` int(20) NOT NULL DEFAULT '0',
`ip` varchar(75) NOT NULL DEFAULT '',
`ip` varchar(88) NOT NULL DEFAULT '',
`reason` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=KU_DBCHARSET;

View File

@ -0,0 +1,4 @@
ALTER TABLE `posts` CHANGE COLUMN `ip` `ip` VARCHAR(88) NOT NULL;
ALTER TABLE `reports` CHANGE COLUMN `ip` `ip` VARCHAR(88) NOT NULL;
ALTER TABLE `banlist` CHANGE COLUMN `ip` `ip` VARCHAR(88) NOT NULL;
ALTER TABLE `loginattempts` CHANGE COLUMN `ip` `ip` VARCHAR(45) NOT NULL;

View File

@ -28,13 +28,19 @@ class Posting {
// Set user ID
if ($this->ipless_mode) {
if (isset($_COOKIE['I0_persistent_id'])) {
$this->user_id = $_COOKIE['I0_persistent_id'];
$user_id = $_COOKIE['I0_persistent_id'];
}
else {
$this->user_id = session_id();
$user_id = session_id();
$this->need_cookie = true;
$this->is_new_user = true;
}
$user_id_trunc = substr($user_id, 0, 45);
if ($user_id_trunc != $user_id) {
$this->need_cookie = true;
$this->is_new_user = true;
}
$this->user_id = $user_id_trunc;
}
else {
$this->user_id = $_SERVER['REMOTE_ADDR'];