mirror of
https://github.com/kleeja-official/kleeja.git
synced 2025-12-16 04:59:42 +01:00
fixes & partial sqlite support
This commit is contained in:
2
do.php
2
do.php
@@ -320,7 +320,7 @@ elseif (ig('down') || ig('downf') ||
|
|||||||
$is_live = in_array($t, $livexts) ? true : false;
|
$is_live = in_array($t, $livexts) ? true : false;
|
||||||
|
|
||||||
|
|
||||||
$SQL->free($result);
|
$SQL->freeresult($result);
|
||||||
|
|
||||||
//fix bug where a user can override files wait counter
|
//fix bug where a user can override files wait counter
|
||||||
if (! $is_image && (ig('img') || ig('thmb')))
|
if (! $is_image && (ig('img') || ig('thmb')))
|
||||||
|
|||||||
@@ -69,11 +69,11 @@ if (ip('submit'))
|
|||||||
@kleeja_unlink(PATH . $row['folder'] . '/thumbs/' . $row['name']);
|
@kleeja_unlink(PATH . $row['folder'] . '/thumbs/' . $row['name']);
|
||||||
}
|
}
|
||||||
$ids[] = $row['id'];
|
$ids[] = $row['id'];
|
||||||
$num++;
|
$num++;
|
||||||
$sizes += $row['size'];
|
$sizes += $row['size'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$SQL->free($result);
|
$SQL->freeresult($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -105,9 +105,9 @@ if (ip('submit'))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//after submit
|
//after submit
|
||||||
$text = ($affected ? $lang['FILES_UPDATED'] : $lang['NO_UP_CHANGE_S']) .
|
$text = ($affected ? $lang['FILES_UPDATED'] : $lang['NO_UP_CHANGE_S']) .
|
||||||
'<script type="text/javascript"> setTimeout("get_kleeja_link(\'' . basename(ADMIN_PATH) . '?cp=' . basename(__file__, '.php') .
|
'<script type="text/javascript"> setTimeout("get_kleeja_link(\'' . basename(ADMIN_PATH) . '?cp=' . basename(__file__, '.php') .
|
||||||
'&page=' . (ig('page') ? g('page', 'int') : '1') . '\');", 2000);</script>' . "\n";
|
'&page=' . (ig('page') ? g('page', 'int') : '1') . '\');", 2000);</script>' . "\n";
|
||||||
|
|
||||||
$stylee = 'admin_info';
|
$stylee = 'admin_info';
|
||||||
@@ -231,8 +231,8 @@ else
|
|||||||
'thumb_link' => $url_thumb
|
'thumb_link' => $url_thumb
|
||||||
];
|
];
|
||||||
|
|
||||||
//fix ...
|
//fix ...
|
||||||
$tdnum = $tdnum == 4 ? 0 : $tdnum+1;
|
$tdnum = $tdnum == 4 ? 0 : $tdnum+1;
|
||||||
|
|
||||||
$del[$row['id']] = p('del_' . $row['id']);
|
$del[$row['id']] = p('del_' . $row['id']);
|
||||||
|
|
||||||
@@ -260,7 +260,7 @@ else
|
|||||||
}
|
}
|
||||||
|
|
||||||
//pages
|
//pages
|
||||||
$total_pages = $Pager->getTotalPages();
|
$total_pages = $Pager->getTotalPages();
|
||||||
$page_nums = $Pager->print_nums(basename(ADMIN_PATH) . '?cp=' . basename(__file__, '.php') .
|
$page_nums = $Pager->print_nums(basename(ADMIN_PATH) . '?cp=' . basename(__file__, '.php') .
|
||||||
(ig('last_visit') ? '&last_vists=' . g('last_visit', 'int') : '') .
|
(ig('last_visit') ? '&last_vists=' . g('last_visit', 'int') : '') .
|
||||||
(ig('smt') ? '&smt=' . g('smt') : ''), 'onclick="javascript:get_kleeja_link($(this).attr(\'href\'), \'#content\'); return false;"');
|
(ig('smt') ? '&smt=' . g('smt') : ''), 'onclick="javascript:get_kleeja_link($(this).attr(\'href\'), \'#content\'); return false;"');
|
||||||
|
|||||||
@@ -460,7 +460,7 @@ if (ip('newgroup'))
|
|||||||
];
|
];
|
||||||
$SQL->build($insert_query);
|
$SQL->build($insert_query);
|
||||||
}
|
}
|
||||||
$SQL->free($result);
|
$SQL->freeresult($result);
|
||||||
|
|
||||||
//copy configs from the other group to this group
|
//copy configs from the other group to this group
|
||||||
$query = [
|
$query = [
|
||||||
@@ -480,7 +480,7 @@ if (ip('newgroup'))
|
|||||||
];
|
];
|
||||||
$SQL->build($insert_query);
|
$SQL->build($insert_query);
|
||||||
}
|
}
|
||||||
$SQL->free($result);
|
$SQL->freeresult($result);
|
||||||
|
|
||||||
//copy exts from the other group to this group
|
//copy exts from the other group to this group
|
||||||
$query = [
|
$query = [
|
||||||
@@ -500,7 +500,7 @@ if (ip('newgroup'))
|
|||||||
];
|
];
|
||||||
$SQL->build($insert_query);
|
$SQL->build($insert_query);
|
||||||
}
|
}
|
||||||
$SQL->free($result);
|
$SQL->freeresult($result);
|
||||||
|
|
||||||
//show group-is-added message
|
//show group-is-added message
|
||||||
delete_cache('data_groups');
|
delete_cache('data_groups');
|
||||||
@@ -934,50 +934,6 @@ case 'group_exts':
|
|||||||
$d_groups[$req_group]['data']['group_name']);
|
$d_groups[$req_group]['data']['group_name']);
|
||||||
|
|
||||||
|
|
||||||
//check if there is klj_exts which means this is an upgraded website !
|
|
||||||
if (empty($config['exts_upraded1_5']))
|
|
||||||
{
|
|
||||||
$ex_exts = $SQL->query("SHOW TABLES LIKE '{$dbprefix}exts';");
|
|
||||||
|
|
||||||
if ($SQL->num_rows($ex_exts))
|
|
||||||
{
|
|
||||||
$xquery = [
|
|
||||||
'SELECT' => 'ext, gust_size, user_size, gust_allow, user_allow',
|
|
||||||
'FROM' => "{$dbprefix}exts",
|
|
||||||
'WHERE' => 'gust_allow=1 OR user_allow=1',
|
|
||||||
];
|
|
||||||
|
|
||||||
$xresult = $SQL->build($xquery);
|
|
||||||
|
|
||||||
$xexts = '';
|
|
||||||
while ($row=$SQL->fetch_array($xresult))
|
|
||||||
{
|
|
||||||
if ($row['gust_allow'])
|
|
||||||
{
|
|
||||||
$xexts .= ($xexts == '' ? '' : ',') . "('" . $SQL->escape($row['ext']) . "', 2, " . $row['gust_size'] . ')';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($row['user_allow'])
|
|
||||||
{
|
|
||||||
$xexts .= ($xexts == '' ? '' : ',') . "('" . $SQL->escape($row['ext']) . "', 3, " . $row['user_size'] . ')';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$SQL->freeresult($result);
|
|
||||||
|
|
||||||
//delete prev exts before adding
|
|
||||||
$query_del = [
|
|
||||||
'DELETE' => "{$dbprefix}groups_exts",
|
|
||||||
'WHERE' => 'group_id=2 OR group_id=3'
|
|
||||||
];
|
|
||||||
|
|
||||||
$SQL->build($query_del);
|
|
||||||
|
|
||||||
$SQL->query("INSERT INTO {$dbprefix}groups_exts (ext, group_id, size) VALUES " . $xexts . ';');
|
|
||||||
|
|
||||||
add_config('exts_upraded1_5', 'done');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//delete ext?
|
//delete ext?
|
||||||
$DELETED_EXT = $GE_INFO = false;
|
$DELETED_EXT = $GE_INFO = false;
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ if (ip('search_file'))
|
|||||||
$ids[] = $row['filter_id'];
|
$ids[] = $row['filter_id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$SQL->free($result);
|
$SQL->freeresult($result);
|
||||||
|
|
||||||
if ($ids != '')
|
if ($ids != '')
|
||||||
{
|
{
|
||||||
@@ -128,7 +128,7 @@ if (ip('search_user'))
|
|||||||
{
|
{
|
||||||
$ids[] = $row['filter_id'];
|
$ids[] = $row['filter_id'];
|
||||||
}
|
}
|
||||||
$SQL->free($result);
|
$SQL->freeresult($result);
|
||||||
|
|
||||||
if ($ids != '')
|
if ($ids != '')
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ switch ($case):
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$SQL->free($result);
|
$SQL->freeresult($result);
|
||||||
|
|
||||||
//get available plugins
|
//get available plugins
|
||||||
$dh = opendir(PATH . KLEEJA_PLUGINS_FOLDER);
|
$dh = opendir(PATH . KLEEJA_PLUGINS_FOLDER);
|
||||||
@@ -332,9 +332,9 @@ switch ($case):
|
|||||||
$kleeja_plugin = [];
|
$kleeja_plugin = [];
|
||||||
|
|
||||||
//don't show mysql errors
|
//don't show mysql errors
|
||||||
if (! defined('MYSQL_NO_ERRORS'))
|
if (! defined('SQL_NO_ERRORS'))
|
||||||
{
|
{
|
||||||
define('MYSQL_NO_ERRORS', true);
|
define('SQL_NO_ERRORS', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@include PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plg_name . '/init.php';
|
@include PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plg_name . '/init.php';
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ $files_sizes = readable_size($stat_sizes);
|
|||||||
$users_number = $stat_users;
|
$users_number = $stat_users;
|
||||||
$last_del_fles = (int) $config['del_f_day'] <= 0 ? $lang['CLOSED_FEATURE'] : kleeja_date($stat_last_f_del);
|
$last_del_fles = (int) $config['del_f_day'] <= 0 ? $lang['CLOSED_FEATURE'] : kleeja_date($stat_last_f_del);
|
||||||
$php_version = isset($NO_PHPINFO) || ! function_exists('phpinfo') ? phpversion() : 'PHP ' . phpversion();
|
$php_version = isset($NO_PHPINFO) || ! function_exists('phpinfo') ? phpversion() : 'PHP ' . phpversion();
|
||||||
$mysql_version = 'MySQL ' . $SQL->mysql_version();
|
$mysql_version = $SQL->server_info();
|
||||||
$max_execution_time = function_exists('ini_get') ? @ini_get('max_execution_time') : @get_cfg_var('max_execution_time');
|
$max_execution_time = function_exists('ini_get') ? @ini_get('max_execution_time') : @get_cfg_var('max_execution_time');
|
||||||
$upload_max_filesize = function_exists('ini_get') ? @ini_get('upload_max_filesize') : @get_cfg_var('upload_max_filesize');
|
$upload_max_filesize = function_exists('ini_get') ? @ini_get('upload_max_filesize') : @get_cfg_var('upload_max_filesize');
|
||||||
$post_max_size = function_exists('ini_get') ? @ini_get('post_max_size') : @get_cfg_var('post_max_size');
|
$post_max_size = function_exists('ini_get') ? @ini_get('post_max_size') : @get_cfg_var('post_max_size');
|
||||||
|
|||||||
@@ -142,7 +142,16 @@ define('K_DIR_CHMOD', defined('HAS_SUEXEC') ? (0755 & ~umask()) : 0755);
|
|||||||
|
|
||||||
include PATH . 'includes/functions_alternative.php';
|
include PATH . 'includes/functions_alternative.php';
|
||||||
include PATH . 'includes/version.php';
|
include PATH . 'includes/version.php';
|
||||||
include PATH . 'includes/mysqli.php';
|
|
||||||
|
if (isset($dbtype) && $dbtype == 'sqlite')
|
||||||
|
{
|
||||||
|
include PATH . 'includes/sqlite.php';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
include PATH . 'includes/mysqli.php';
|
||||||
|
}
|
||||||
|
|
||||||
include PATH . 'includes/style.php';
|
include PATH . 'includes/style.php';
|
||||||
include PATH . 'includes/usr.php';
|
include PATH . 'includes/usr.php';
|
||||||
include PATH . 'includes/pager.php';
|
include PATH . 'includes/pager.php';
|
||||||
@@ -383,11 +392,13 @@ if (defined('STOP_CAPTCHA'))
|
|||||||
is_array($plugin_run_result = Plugins::getInstance()->run('end_common', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook
|
is_array($plugin_run_result = Plugins::getInstance()->run('end_common', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook
|
||||||
|
|
||||||
|
|
||||||
if (function_exists('session_register_shutdown'))
|
|
||||||
{
|
register_shutdown_function(function() {
|
||||||
session_register_shutdown();
|
session_write_close();
|
||||||
}
|
|
||||||
else
|
$err = error_get_last();
|
||||||
{
|
if(is_array($err) && ! empty($err['type']) && in_array($err['type'], [E_ERROR, E_PARSE]))
|
||||||
register_shutdown_function('session_write_close');
|
{
|
||||||
}
|
kleeja_log('[FATAL] ' . basename($err['file']) . ':' . $err['line'] . ' ' . $err['message']);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|||||||
@@ -1281,7 +1281,7 @@ function kleeja_log($text)
|
|||||||
}
|
}
|
||||||
|
|
||||||
file_put_contents(
|
file_put_contents(
|
||||||
PATH . 'cache/kleeja_log.log',
|
__DIR__ . '/../cache/kleeja_log.log',
|
||||||
date_format(date_create(), 'Y-m-d h:i:s.ua') . ' | INFO | ' . $text . PHP_EOL,
|
date_format(date_create(), 'Y-m-d h:i:s.ua') . ' | INFO | ' . $text . PHP_EOL,
|
||||||
FILE_APPEND | LOCK_EX
|
FILE_APPEND | LOCK_EX
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ function get_filter($item, $filter_type = false, $just_value = false, $get_by =
|
|||||||
$result = $SQL->build($query);
|
$result = $SQL->build($query);
|
||||||
$v = $SQL->fetch($result);
|
$v = $SQL->fetch($result);
|
||||||
|
|
||||||
$SQL->free($result);
|
$SQL->freeresult($result);
|
||||||
|
|
||||||
if ($just_value)
|
if ($just_value)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -847,6 +847,11 @@ function kleeja_date($time, $human_time = true, $format = false)
|
|||||||
|
|
||||||
if (! empty($config['time_zone']) && strpos($config['time_zone'], '/') !== false)
|
if (! empty($config['time_zone']) && strpos($config['time_zone'], '/') !== false)
|
||||||
{
|
{
|
||||||
|
if(strpos($config['time_zone'], 'Buraydah') !== false)
|
||||||
|
{
|
||||||
|
$config['time_zone'] = 'Asia/Riyadh';
|
||||||
|
}
|
||||||
|
|
||||||
$timezone_offset = timezone_offset_get(new DateTimeZone($config['time_zone']), new DateTime);
|
$timezone_offset = timezone_offset_get(new DateTimeZone($config['time_zone']), new DateTime);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -20,7 +20,9 @@ define('SQL_LAYER', 'mysqli');
|
|||||||
|
|
||||||
class KleejaDatabase
|
class KleejaDatabase
|
||||||
{
|
{
|
||||||
|
/** @var mysqli */
|
||||||
private $connect_id = null;
|
private $connect_id = null;
|
||||||
|
/** @var mysqli_result */
|
||||||
private $result = null;
|
private $result = null;
|
||||||
public $dbprefix = '';
|
public $dbprefix = '';
|
||||||
private $dbname = '';
|
private $dbname = '';
|
||||||
@@ -30,10 +32,15 @@ class KleejaDatabase
|
|||||||
private $show_errors = true;
|
private $show_errors = true;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* initiate the class
|
* connect
|
||||||
* with basic data
|
*
|
||||||
*/
|
* @param string $host
|
||||||
|
* @param string $db_username
|
||||||
|
* @param string $db_password
|
||||||
|
* @param string $db_name
|
||||||
|
* @param string $dbprefix
|
||||||
|
*/
|
||||||
public function __construct($host, $db_username, $db_password, $db_name, $dbprefix)
|
public function __construct($host, $db_username, $db_password, $db_name, $dbprefix)
|
||||||
{
|
{
|
||||||
$port = 3306;
|
$port = 3306;
|
||||||
@@ -50,7 +57,7 @@ class KleejaDatabase
|
|||||||
$this->connect_id = @mysqli_connect($host, $db_username, $db_password, $db_name, $port);
|
$this->connect_id = @mysqli_connect($host, $db_username, $db_password, $db_name, $port);
|
||||||
|
|
||||||
//no error
|
//no error
|
||||||
if (defined('MYSQL_NO_ERRORS'))
|
if (defined('SQL_NO_ERRORS') || defined('MYSQL_NO_ERRORS'))
|
||||||
{
|
{
|
||||||
$this->show_errors = false;
|
$this->show_errors = false;
|
||||||
}
|
}
|
||||||
@@ -79,36 +86,39 @@ class KleejaDatabase
|
|||||||
return $this->connect_id;
|
return $this->connect_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function __destruct()
|
||||||
|
{
|
||||||
|
$this->close();
|
||||||
|
}
|
||||||
|
|
||||||
public function is_connected()
|
public function is_connected()
|
||||||
{
|
{
|
||||||
return ! (is_null($this->connect_id) || empty($this->connect_id));
|
return ! (is_resource($this->connect_id) || empty($this->connect_id));
|
||||||
}
|
}
|
||||||
|
|
||||||
// close the connection
|
// close the connection
|
||||||
public function close()
|
public function close()
|
||||||
{
|
{
|
||||||
if ($this->connect_id)
|
if (! $this->is_connected())
|
||||||
{
|
{
|
||||||
// Commit any remaining transactions
|
return true;
|
||||||
if ($this->in_transaction)
|
|
||||||
{
|
|
||||||
mysqli_commit($this->connect_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
//loggin -> close connection
|
|
||||||
kleeja_log('[Closing connection] : ' . kleeja_get_page());
|
|
||||||
|
|
||||||
if(! is_resource($this->connect_id))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return @mysqli_close($this->connect_id);
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
// Commit any remaining transactions
|
||||||
|
if ($this->in_transaction)
|
||||||
{
|
{
|
||||||
return false;
|
mysqli_commit($this->connect_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//loggin -> close connection
|
||||||
|
kleeja_log('[Closing connection] : ' . kleeja_get_page());
|
||||||
|
|
||||||
|
if(! is_resource($this->connect_id))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return @mysqli_close($this->connect_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// encoding functions
|
// encoding functions
|
||||||
@@ -127,7 +137,7 @@ class KleejaDatabase
|
|||||||
return mysqli_character_set_name($this->connect_id);
|
return mysqli_character_set_name($this->connect_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function mysql_version()
|
public function version()
|
||||||
{
|
{
|
||||||
$vr = $this->query('SELECT VERSION() AS v');
|
$vr = $this->query('SELECT VERSION() AS v');
|
||||||
$vs = $this->fetch_array($vr);
|
$vs = $this->fetch_array($vr);
|
||||||
@@ -135,14 +145,18 @@ class KleejaDatabase
|
|||||||
return preg_replace('/^([^-]+).*$/', '\\1', $vs);
|
return preg_replace('/^([^-]+).*$/', '\\1', $vs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* the query func . its so important to do
|
/**
|
||||||
* the quries and give results
|
* execute a query
|
||||||
|
*
|
||||||
|
* @param string $query
|
||||||
|
* @param boolean $transaction
|
||||||
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function query($query, $transaction = false)
|
public function query($query, $transaction = false)
|
||||||
{
|
{
|
||||||
//no connection
|
//no connection
|
||||||
if (! $this->connect_id)
|
if (! $this->is_connected())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -158,7 +172,7 @@ class KleejaDatabase
|
|||||||
$srartum_sql = get_microtime();
|
$srartum_sql = get_microtime();
|
||||||
////////////////
|
////////////////
|
||||||
|
|
||||||
if ($transaction == 1 && ! $this->in_transaction)
|
if ($transaction && ! $this->in_transaction)
|
||||||
{
|
{
|
||||||
if (! mysqli_autocommit($this->connect_id, false))
|
if (! mysqli_autocommit($this->connect_id, false))
|
||||||
{
|
{
|
||||||
@@ -186,7 +200,7 @@ class KleejaDatabase
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($transaction == 2 && $this->in_transaction)
|
if ($this->in_transaction)
|
||||||
{
|
{
|
||||||
$this->result = mysqli_commit($this->connect_id);
|
$this->result = mysqli_commit($this->connect_id);
|
||||||
}
|
}
|
||||||
@@ -195,7 +209,7 @@ class KleejaDatabase
|
|||||||
//is there any result
|
//is there any result
|
||||||
if ($this->result)
|
if ($this->result)
|
||||||
{
|
{
|
||||||
if ($transaction == 2 && $this->in_transaction)
|
if ($this->in_transaction)
|
||||||
{
|
{
|
||||||
$this->in_transaction = false;
|
$this->in_transaction = false;
|
||||||
|
|
||||||
@@ -220,7 +234,12 @@ class KleejaDatabase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// query build
|
/**
|
||||||
|
* build structured query ['SELECT' => ..., 'FROM' => ..., ...]
|
||||||
|
*
|
||||||
|
* @param array $query
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
public function build($query)
|
public function build($query)
|
||||||
{
|
{
|
||||||
$sql = '';
|
$sql = '';
|
||||||
@@ -311,12 +330,12 @@ class KleejaDatabase
|
|||||||
return $this->query($sql);
|
return $this->query($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
// free the memmory from the last results
|
/**
|
||||||
public function free($query_id = 0)
|
* free the memmory from the last results
|
||||||
{
|
*
|
||||||
return $this->freeresult($query_id);
|
* @param integer $query_id optional
|
||||||
}
|
* @return bool
|
||||||
|
*/
|
||||||
public function freeresult($query_id = 0)
|
public function freeresult($query_id = 0)
|
||||||
{
|
{
|
||||||
if (! $query_id)
|
if (! $query_id)
|
||||||
@@ -335,15 +354,24 @@ class KleejaDatabase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* if the result is an arry ,
|
/**
|
||||||
* this func is so important to order them as a array
|
* fetch results (alias of fetch_array)
|
||||||
|
*
|
||||||
|
* @param mysqli_result $query_id
|
||||||
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function fetch($query_id = 0)
|
public function fetch($query_id = 0)
|
||||||
{
|
{
|
||||||
return $this->fetch_array($query_id);
|
return $this->fetch_array($query_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fetch results
|
||||||
|
*
|
||||||
|
* @param mysqli_result $query_id
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
public function fetch_array($query_id = 0)
|
public function fetch_array($query_id = 0)
|
||||||
{
|
{
|
||||||
if (! $query_id)
|
if (! $query_id)
|
||||||
@@ -351,12 +379,14 @@ class KleejaDatabase
|
|||||||
$query_id = $this->result;
|
$query_id = $this->result;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $query_id ? mysqli_fetch_array($query_id, MYSQLI_ASSOC) : false;
|
return $query_id ? mysqli_fetch_array($query_id, MYSQLI_ASSOC) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* if we have a result and we have to know
|
* return number of rows of result (not efficient)
|
||||||
* the number of it , this is a func ..
|
*
|
||||||
|
* @param mysqli_result $query_id
|
||||||
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function num_rows($query_id = 0)
|
public function num_rows($query_id = 0)
|
||||||
{
|
{
|
||||||
@@ -369,13 +399,22 @@ class KleejaDatabase
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// last id inserted in sql
|
/**
|
||||||
|
* return the id of latest inserted record
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
public function insert_id()
|
public function insert_id()
|
||||||
{
|
{
|
||||||
return $this->connect_id ? mysqli_insert_id($this->connect_id) : false;
|
return $this->is_connected() ? mysqli_insert_id($this->connect_id) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// clean the qurery before insert it
|
/**
|
||||||
|
* extra escape
|
||||||
|
*
|
||||||
|
* @param string $msg
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
public function escape($msg)
|
public function escape($msg)
|
||||||
{
|
{
|
||||||
$msg = htmlspecialchars($msg, ENT_QUOTES);
|
$msg = htmlspecialchars($msg, ENT_QUOTES);
|
||||||
@@ -384,42 +423,48 @@ class KleejaDatabase
|
|||||||
return $msg;
|
return $msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
// real escape ..
|
|
||||||
/**
|
/**
|
||||||
* @param string|array $msg
|
* escape
|
||||||
|
* @param string $msg
|
||||||
* @return int|string
|
* @return int|string
|
||||||
*/
|
*/
|
||||||
public function real_escape($msg)
|
public function real_escape($msg)
|
||||||
{
|
{
|
||||||
if (is_array($msg) && ! $this->connect_id)
|
if (! $this->is_connected())
|
||||||
{
|
{
|
||||||
return $msg;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $this->connect_id)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//escaping _ made alot of problems
|
|
||||||
//return addcslashes(mysqli_real_escape_string($this->connect_id, $msg), '%_');
|
|
||||||
return mysqli_real_escape_string($this->connect_id, $msg);
|
return mysqli_real_escape_string($this->connect_id, $msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// get affected records
|
/**
|
||||||
|
* number of affected rows by latest action
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
public function affected()
|
public function affected()
|
||||||
{
|
{
|
||||||
return $this->connect_id ? mysqli_affected_rows($this->connect_id) : false;
|
return $this->is_connected() ? mysqli_affected_rows($this->connect_id) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// get the information of mysql server
|
/**
|
||||||
|
* information
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
public function server_info()
|
public function server_info()
|
||||||
{
|
{
|
||||||
return 'MySQLi ' . $this->mysql_version;
|
return 'MySQLi ' . $this->version();
|
||||||
}
|
}
|
||||||
|
|
||||||
// error message func
|
/**
|
||||||
public function error_msg($msg)
|
* present error messages
|
||||||
|
*
|
||||||
|
* @param string $msg
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function error_msg($msg)
|
||||||
{
|
{
|
||||||
if (! $this->show_errors)
|
if (! $this->show_errors)
|
||||||
{
|
{
|
||||||
@@ -427,8 +472,7 @@ class KleejaDatabase
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$error_no = $this->connect_id ? @mysqli_errno($this->connect_id) : @mysqli_connect_errno();
|
[$error_no, $error_msg] = $this->get_error();
|
||||||
$error_msg = $this->connect_id ? @mysqli_error($this->connect_id) : @mysqli_connect_error();
|
|
||||||
$error_sql = @current($this->debugr[$this->query_num+1]);
|
$error_sql = @current($this->debugr[$this->query_num+1]);
|
||||||
|
|
||||||
//some ppl want hide their table names
|
//some ppl want hide their table names
|
||||||
@@ -496,10 +540,14 @@ class KleejaDatabase
|
|||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
// return last error
|
/**
|
||||||
|
* return last error as [code, message]
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
public function get_error()
|
public function get_error()
|
||||||
{
|
{
|
||||||
if ($this->connect_id)
|
if ($this->is_connected())
|
||||||
{
|
{
|
||||||
return [@mysqli_errno($this->connect_id), @mysqli_error($this->connect_id)];
|
return [@mysqli_errno($this->connect_id), @mysqli_error($this->connect_id)];
|
||||||
}
|
}
|
||||||
@@ -508,6 +556,6 @@ class KleejaDatabase
|
|||||||
return [@mysqli_connect_errno(), @mysqli_connect_error()];
|
return [@mysqli_connect_errno(), @mysqli_connect_error()];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}//end of class
|
}
|
||||||
|
|
||||||
endif;
|
endif;
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ class Plugins
|
|||||||
{
|
{
|
||||||
$this->installed_plugins[$row['plg_name']] = $row['plg_ver'];
|
$this->installed_plugins[$row['plg_name']] = $row['plg_ver'];
|
||||||
}
|
}
|
||||||
$SQL->free($result);
|
$SQL->freeresult($result);
|
||||||
|
|
||||||
|
|
||||||
$this->load_enabled_plugins();
|
$this->load_enabled_plugins();
|
||||||
|
|||||||
554
includes/sqlite.php
Executable file
554
includes/sqlite.php
Executable file
@@ -0,0 +1,554 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package Kleeja
|
||||||
|
* @copyright (c) 2007 Kleeja.com
|
||||||
|
* @license ./docs/license.txt
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
//no for directly open
|
||||||
|
if (! defined('IN_COMMON'))
|
||||||
|
{
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! defined('SQL_LAYER')):
|
||||||
|
|
||||||
|
define('SQL_LAYER', 'sqlite');
|
||||||
|
|
||||||
|
class KleejaDatabase
|
||||||
|
{
|
||||||
|
/** @var SQLITE3 */
|
||||||
|
private $connect_id = null;
|
||||||
|
/** @var SQLite3Result */
|
||||||
|
private $result = null;
|
||||||
|
public $dbprefix = '';
|
||||||
|
private $dbname = '';
|
||||||
|
public $query_num = 0;
|
||||||
|
private $in_transaction = 0;
|
||||||
|
public $debugr = false;
|
||||||
|
private $show_errors = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* connect
|
||||||
|
*
|
||||||
|
* @param string $location path of sqlite database
|
||||||
|
* @param string $db_username not needed
|
||||||
|
* @param string $db_password not needed
|
||||||
|
* @param string $db_name not needed
|
||||||
|
* @param string $dbprefix tables prefix
|
||||||
|
*/
|
||||||
|
public function __construct($location, $db_username, $db_password, $db_name, $dbprefix)
|
||||||
|
{
|
||||||
|
$this->connect_id = new SQLite3(PATH . $db_name, SQLITE3_OPEN_READWRITE);
|
||||||
|
|
||||||
|
$this->dbprefix = $dbprefix;
|
||||||
|
$this->dbname = $db_name;
|
||||||
|
|
||||||
|
//no error
|
||||||
|
if (defined('SQL_NO_ERRORS'))
|
||||||
|
{
|
||||||
|
$this->show_errors = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $this->connect_id)
|
||||||
|
{
|
||||||
|
//loggin -> no database -> close connection
|
||||||
|
$this->close();
|
||||||
|
$this->error_msg('We can not connect to the sqlite database, check location or existence of the SQLite dirver ...');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//connecting
|
||||||
|
kleeja_log('[Connected] : ' . kleeja_get_page());
|
||||||
|
|
||||||
|
|
||||||
|
return $this->connect_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __destruct()
|
||||||
|
{
|
||||||
|
$this->close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function is_connected()
|
||||||
|
{
|
||||||
|
return ! (is_null($this->connect_id) || empty($this->connect_id));
|
||||||
|
}
|
||||||
|
|
||||||
|
// close the connection
|
||||||
|
public function close()
|
||||||
|
{
|
||||||
|
if (! $this->is_connected())
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Commit any remaining transactions
|
||||||
|
if ($this->in_transaction)
|
||||||
|
{
|
||||||
|
$this->query('COMMIT;');
|
||||||
|
}
|
||||||
|
|
||||||
|
//loggin -> close connection
|
||||||
|
kleeja_log('[Closing connection] : ' . kleeja_get_page());
|
||||||
|
|
||||||
|
if (! is_resource($this->connect_id))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return @mysqli_close($this->connect_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
// encoding functions
|
||||||
|
public function set_utf8()
|
||||||
|
{
|
||||||
|
//$this->set_names('utf8');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function set_names($charset)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function client_encoding()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function version()
|
||||||
|
{
|
||||||
|
return SQLite3::version();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* execute a query
|
||||||
|
*
|
||||||
|
* @param string $query
|
||||||
|
* @param boolean $transaction
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function query($query, $transaction = false)
|
||||||
|
{
|
||||||
|
//no connection
|
||||||
|
if (! $this->is_connected())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Remove any pre-existing queries
|
||||||
|
//
|
||||||
|
unset($this->result);
|
||||||
|
|
||||||
|
if(strpos($query, 'CREATE TABLE') !== false || strpos($query, 'ALTER DATABASE') !== false)
|
||||||
|
{
|
||||||
|
$sqlite_types = [
|
||||||
|
'/AUTO_INCREMENT/i' => '',
|
||||||
|
'/VARCHAR\s?(\\([0-9]+\\))?/i' => 'TEXT',
|
||||||
|
'/COLLATE\s+([a-z0-9_]+)/i' => '',
|
||||||
|
'/(TINY|SMALL|MEDIUM|BIG)?INT\s?(\([0-9]+\))?\s?(UNSIGNED)?/i' => 'INTEGER ',
|
||||||
|
'/(TINY|MEDIUM|LONG)?TEXT/i' => 'TEXT',
|
||||||
|
'/KEY\s`?([a-z0-9_]+)`?\s\(`?([a-z0-9_]+)`?(\([0-9]+\))?\)\s?,?/i' => '',
|
||||||
|
'/\)(\s{0,4}ENGINE=([a-z0-9_]+))?(\s{0,4}DEFAULT)?(\s{0,4}CHARSET=([a-z0-9_]+))?(\s{0,4}COLLATE=([a-z0-9_]+))?(\s{0,4}AUTOINCREMENT)?(\s{0,4}=\s?1)?(\s{0,4};)?/i' => ')',
|
||||||
|
'/,\s+\)/' => ')',
|
||||||
|
'/INTEGER\s{0,4}NOT\s{0,4}NULL/i' => 'INTEGER',
|
||||||
|
];
|
||||||
|
|
||||||
|
//todo extract keys and add as CREATE INDEX index_name ON table (column);
|
||||||
|
|
||||||
|
foreach($sqlite_types as $old_type => $new_type)
|
||||||
|
{
|
||||||
|
$query = preg_replace($old_type, $new_type, $query);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! empty($query))
|
||||||
|
{
|
||||||
|
//debug
|
||||||
|
$srartum_sql = get_microtime();
|
||||||
|
|
||||||
|
if ($transaction && ! $this->in_transaction)
|
||||||
|
{
|
||||||
|
$this->query('BEGIN;');
|
||||||
|
$this->in_transaction = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->result = @$this->connect_id->query($query);
|
||||||
|
|
||||||
|
//debug .. //////////////
|
||||||
|
$this->debugr[$this->query_num+1] = [$query, sprintf('%.5f', get_microtime() - $srartum_sql)];
|
||||||
|
////////////////
|
||||||
|
|
||||||
|
if (! $this->result)
|
||||||
|
{
|
||||||
|
$this->error_msg('Error In query');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//let's debug it
|
||||||
|
kleeja_log('[Query] : --> ' . $query);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($this->in_transaction)
|
||||||
|
{
|
||||||
|
$this->result = $this->connect_id->query('COMMIT;');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//is there any result
|
||||||
|
if ($this->result)
|
||||||
|
{
|
||||||
|
if ($this->in_transaction)
|
||||||
|
{
|
||||||
|
$this->in_transaction = false;
|
||||||
|
|
||||||
|
if (! $this->connect_id->query('COMMIT;'))
|
||||||
|
{
|
||||||
|
$this->connect_id->query('ROLLBACK;');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->query_num++;
|
||||||
|
return $this->result;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($this->in_transaction)
|
||||||
|
{
|
||||||
|
$this->connect_id->query('ROLLBACK;');
|
||||||
|
$this->in_transaction = false;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* build structured query ['SELECT' => ..., 'FROM' => ..., ...]
|
||||||
|
*
|
||||||
|
* @param array $query
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function build($query)
|
||||||
|
{
|
||||||
|
$sql = '';
|
||||||
|
|
||||||
|
if (isset($query['SELECT']) && isset($query['FROM']))
|
||||||
|
{
|
||||||
|
$sql = 'SELECT ' . $query['SELECT'] . ' FROM ' . $query['FROM'];
|
||||||
|
|
||||||
|
if (isset($query['JOINS']))
|
||||||
|
{
|
||||||
|
foreach ($query['JOINS'] as $cur_join)
|
||||||
|
{
|
||||||
|
$sql .= ' ' . key($cur_join) . ' ' . current($cur_join) . ' ON ' . $cur_join['ON'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! empty($query['WHERE']))
|
||||||
|
{
|
||||||
|
$sql .= ' WHERE ' . $query['WHERE'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! empty($query['GROUP BY']))
|
||||||
|
{
|
||||||
|
$sql .= ' GROUP BY ' . $query['GROUP BY'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! empty($query['HAVING']))
|
||||||
|
{
|
||||||
|
$sql .= ' HAVING ' . $query['HAVING'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! empty($query['ORDER BY']))
|
||||||
|
{
|
||||||
|
$sql .= ' ORDER BY ' . $query['ORDER BY'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! empty($query['LIMIT']))
|
||||||
|
{
|
||||||
|
$sql .= ' LIMIT ' . $query['LIMIT'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif (isset($query['INSERT']))
|
||||||
|
{
|
||||||
|
$sql = 'INSERT INTO ' . $query['INTO'];
|
||||||
|
|
||||||
|
if (! empty($query['INSERT']))
|
||||||
|
{
|
||||||
|
$sql .= ' (' . $query['INSERT'] . ')';
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql .= ' VALUES(' . $query['VALUES'] . ')';
|
||||||
|
}
|
||||||
|
elseif (isset($query['UPDATE']))
|
||||||
|
{
|
||||||
|
$sql = 'UPDATE ' . $query['UPDATE'] . ' SET ' . $query['SET'];
|
||||||
|
|
||||||
|
if (! empty($query['WHERE']))
|
||||||
|
{
|
||||||
|
$sql .= ' WHERE ' . $query['WHERE'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif (isset($query['DELETE']))
|
||||||
|
{
|
||||||
|
$sql = 'DELETE FROM ' . $query['DELETE'];
|
||||||
|
|
||||||
|
if (! empty($query['WHERE']))
|
||||||
|
{
|
||||||
|
$sql .= ' WHERE ' . $query['WHERE'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif (isset($query['REPLACE']))
|
||||||
|
{
|
||||||
|
$sql = 'REPLACE INTO ' . $query['INTO'];
|
||||||
|
|
||||||
|
if (! empty($query['REPLACE']))
|
||||||
|
{
|
||||||
|
$sql .= ' (' . $query['REPLACE'] . ')';
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql .= ' VALUES(' . $query['VALUES'] . ')';
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->query($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* free the memmory from the last results
|
||||||
|
*
|
||||||
|
* @param SQLite3Result $query_id optional
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function freeresult($query_id = 0)
|
||||||
|
{
|
||||||
|
if (! $query_id)
|
||||||
|
{
|
||||||
|
$query_id = $this->result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($query_id)
|
||||||
|
{
|
||||||
|
$query_id->finalize();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fetch results (alias of fetch_array)
|
||||||
|
*
|
||||||
|
* @param SQLite3Result $query_id
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function fetch($query_id = 0)
|
||||||
|
{
|
||||||
|
return $this->fetch_array($query_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fetch results
|
||||||
|
*
|
||||||
|
* @param SQLite3Result $query_id
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function fetch_array($query_id = 0)
|
||||||
|
{
|
||||||
|
if (! $query_id)
|
||||||
|
{
|
||||||
|
$query_id = $this->result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($query_id && $query_id->numColumns() > 0)
|
||||||
|
{
|
||||||
|
return $query_id->fetchArray(SQLITE3_ASSOC);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* return number of rows of result (not efficient)
|
||||||
|
*
|
||||||
|
* @param SQLite3Result $query_id
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function num_rows($query_id = 0)
|
||||||
|
{
|
||||||
|
if (! $query_id)
|
||||||
|
{
|
||||||
|
$query_id = $this->result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($results = $query_id->numColumns())
|
||||||
|
{
|
||||||
|
return $results;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* return the id of latest inserted record
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function insert_id()
|
||||||
|
{
|
||||||
|
return $this->is_connected() ? $this->connect_id->lastInsertRowID() : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* extra escape
|
||||||
|
*
|
||||||
|
* @param string $msg
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function escape($msg)
|
||||||
|
{
|
||||||
|
$msg = htmlspecialchars($msg, ENT_QUOTES);
|
||||||
|
$msg = $this->real_escape($msg);
|
||||||
|
return $msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* escape
|
||||||
|
* @param string $msg
|
||||||
|
* @return int|string
|
||||||
|
*/
|
||||||
|
|
||||||
|
public function real_escape($msg)
|
||||||
|
{
|
||||||
|
return SQLite3::escapeString($msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* number of affected rows by latest action
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function affected()
|
||||||
|
{
|
||||||
|
return $this->is_connected() ? $this->connect_id->changes() : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* information
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function server_info()
|
||||||
|
{
|
||||||
|
return 'SQLite3 ' . $this->version();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* present error messages
|
||||||
|
*
|
||||||
|
* @param string $msg
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function error_msg($msg)
|
||||||
|
{
|
||||||
|
if (! $this->show_errors)
|
||||||
|
{
|
||||||
|
kleeja_log('SQLite3: ' . $msg);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
[$error_no, $error_msg] = $this->get_error();
|
||||||
|
$error_sql = @current($this->debugr[$this->query_num+1]);
|
||||||
|
|
||||||
|
//some ppl want hide their table names
|
||||||
|
if (! defined('DEV_STAGE'))
|
||||||
|
{
|
||||||
|
$error_sql = preg_replace_callback("#\s{1,3}`*{$this->dbprefix}([a-z0-9]+)`*\s{1,3}#", function($m) {
|
||||||
|
return ' <span style="color:blue">' . substr($m[1], 0, 1) . '</span> ';
|
||||||
|
}, $error_sql);
|
||||||
|
$error_msg = preg_replace_callback("#{$this->dbname}.{$this->dbprefix}([a-z0-9]+)#", function($m) {
|
||||||
|
return ' <span style="color:blue">' . substr($m[1], 0, 1) . '</span> ';
|
||||||
|
}, $error_msg);
|
||||||
|
$error_sql = preg_replace_callback("#\s{1,3}(from|update|into)\s{1,3}([a-z0-9]+)\s{1,3}#i", function($m) {
|
||||||
|
return $m[1] . ' <span style="color:blue">' . substr($m[2], 0, 1) . '</span> ';
|
||||||
|
}, $error_sql);
|
||||||
|
$error_msg = preg_replace_callback("#\s{1,3}(from|update|into)\s{1,3}([a-z0-9]+)\s{1,3}#i", function($m) {
|
||||||
|
return $m[1] . ' <span style="color:blue">' . substr($m[2], 0, 1) . '</span> ';
|
||||||
|
}, $error_msg);
|
||||||
|
$error_msg = preg_replace_callback("#\s'([^']+)'@'([^']+)'#i", function($m) {
|
||||||
|
return ' <span style="color:blue">hidden</span>@' . $m[2] . ' ';
|
||||||
|
}, $error_msg);
|
||||||
|
$error_sql = preg_replace("#password\s*=\s*'[^']+'#i", "password='<span style=\"color:blue\">hidden</span>'", $error_sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
//is this error related to updating?
|
||||||
|
$updating_related = false;
|
||||||
|
|
||||||
|
if (strpos($error_msg, 'Unknown column') !== false || strpos($error_msg, 'no such table') !== false)
|
||||||
|
{
|
||||||
|
$updating_related = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
header('HTTP/1.1 500 Internal Server Error');
|
||||||
|
$error_message = '<html><head><title>MYSQL ERROR</title>';
|
||||||
|
$error_message .= "<style>BODY{font-family:'Tahoma',serif;font-size:12px;}.error {}</style></head><body>";
|
||||||
|
$error_message .= '<br />';
|
||||||
|
$error_message .= '<div class="error">';
|
||||||
|
$error_message .= " <a href='#' onclick='window.location.reload( false );'>click to Refresh this page ...</a><br />";
|
||||||
|
$error_message .= '<h2>Sorry , We encountered a MySQL error: ' . ($msg !='' ? $msg : '') . '</h2>';
|
||||||
|
|
||||||
|
if ($error_sql != '')
|
||||||
|
{
|
||||||
|
$error_message .= "<br />--[query]-------------------------- <br />$error_sql<br />---------------------------------<br /><br />";
|
||||||
|
}
|
||||||
|
$error_message .= "[$error_no : $error_msg] <br />";
|
||||||
|
|
||||||
|
if ($updating_related)
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
$error_message .= '<br /><strong>Your Kleeja database might be old, try to update it now from: ' . rtrim($config['siteurl'], '/') . '/install</strong>';
|
||||||
|
$error_message .= "<br /><br><strong>If this error happened after installing a plugin, add <span style=\"background-color:#ccc; padding:2px\">define('STOP_PLUGINS', true);</span> to end of config.php file.</strong>";
|
||||||
|
}
|
||||||
|
$error_message .= "<br /><br /><strong>Script: Kleeja <br /><a href='http://www.kleeja.com'>Kleeja Website</a></strong>";
|
||||||
|
$error_message .= '</b></div>';
|
||||||
|
$error_message .= '</body></html>';
|
||||||
|
|
||||||
|
|
||||||
|
print $error_message;
|
||||||
|
|
||||||
|
|
||||||
|
//loggin -> error
|
||||||
|
kleeja_log('[SQL ERROR] : "' . $error_no . ' : ' . $error_msg . '" -->');
|
||||||
|
|
||||||
|
@$this->close();
|
||||||
|
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* return last error as [code, message]
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function get_error()
|
||||||
|
{
|
||||||
|
if ($this->connect_id)
|
||||||
|
{
|
||||||
|
return [$this->connect_id->lastErrorCode(), $this->connect_id->lastErrorMsg()];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return [0, 'uknown-error-not-connected'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
endif;
|
||||||
@@ -357,7 +357,7 @@ class kleeja_style
|
|||||||
$eval_on = false;
|
$eval_on = false;
|
||||||
eval('$eval_on = true;');
|
eval('$eval_on = true;');
|
||||||
|
|
||||||
$parsed_html = trim($this->_parse($html));
|
$parsed_html = trim($this->_parse(stripcslashes($html)));
|
||||||
|
|
||||||
ob_start();
|
ob_start();
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
require PATH . 'includes/version.php';
|
require PATH . 'includes/version.php';
|
||||||
|
|
||||||
//set mysql to show no errors
|
//set mysql to show no errors
|
||||||
define('MYSQL_NO_ERRORS', true);
|
define('SQL_NO_ERRORS', true);
|
||||||
define('EVAL_IS_ON', is_eval_is_on());
|
define('EVAL_IS_ON', is_eval_is_on());
|
||||||
|
|
||||||
|
|
||||||
@@ -161,13 +161,18 @@ function inst_get_config($name)
|
|||||||
|
|
||||||
if (empty($SQL))
|
if (empty($SQL))
|
||||||
{
|
{
|
||||||
global $dbserver, $dbuser, $dbpass, $dbname;
|
global $dbserver, $dbuser, $dbpass, $dbname, $dbtype;
|
||||||
|
|
||||||
if (! isset($dbserver))
|
if (! isset($dbname))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(isset($dbtype) && $dbtype == 'sqlite')
|
||||||
|
{
|
||||||
|
@touch(PATH . $dbname);
|
||||||
|
}
|
||||||
|
|
||||||
$SQL = new KleejaDatabase($dbserver, $dbuser, $dbpass, $dbname, $dbprefix);
|
$SQL = new KleejaDatabase($dbserver, $dbuser, $dbpass, $dbname, $dbprefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,26 +26,24 @@ ALTER DATABASE `{$dbname}` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
|
|||||||
|
|
||||||
$install_sqls['call'] = "
|
$install_sqls['call'] = "
|
||||||
CREATE TABLE `{$dbprefix}call` (
|
CREATE TABLE `{$dbprefix}call` (
|
||||||
`id` int(10) NOT NULL auto_increment,
|
`id` int(10) NOT NULL auto_increment PRIMARY KEY,
|
||||||
`name` varchar(200) collate utf8_bin NOT NULL,
|
`name` varchar(200) collate utf8_bin NOT NULL,
|
||||||
`text` varchar(350) collate utf8_bin NOT NULL,
|
`text` varchar(350) collate utf8_bin NOT NULL,
|
||||||
`mail` varchar(350) collate utf8_bin NOT NULL,
|
`mail` varchar(350) collate utf8_bin NOT NULL,
|
||||||
`time` int(11) NOT NULL,
|
`time` int(11) NOT NULL,
|
||||||
`ip` varchar(40) collate utf8_bin NOT NULL,
|
`ip` varchar(40) collate utf8_bin NOT NULL
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
";
|
";
|
||||||
|
|
||||||
$install_sqls['reports'] = "
|
$install_sqls['reports'] = "
|
||||||
CREATE TABLE `{$dbprefix}reports` (
|
CREATE TABLE `{$dbprefix}reports` (
|
||||||
`id` int(10) NOT NULL auto_increment,
|
`id` int(10) NOT NULL auto_increment PRIMARY KEY,
|
||||||
`name` varchar(350) collate utf8_bin NOT NULL,
|
`name` varchar(350) collate utf8_bin NOT NULL,
|
||||||
`mail` varchar(350) collate utf8_bin NOT NULL,
|
`mail` varchar(350) collate utf8_bin NOT NULL,
|
||||||
`url` varchar(250) collate utf8_bin NOT NULL,
|
`url` varchar(250) collate utf8_bin NOT NULL,
|
||||||
`text` varchar(400) collate utf8_bin NOT NULL,
|
`text` varchar(400) collate utf8_bin NOT NULL,
|
||||||
`time` int(11) NOT NULL,
|
`time` int(11) NOT NULL,
|
||||||
`ip` varchar(40) collate utf8_bin NOT NULL,
|
`ip` varchar(40) collate utf8_bin NOT NULL
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
";
|
";
|
||||||
|
|
||||||
@@ -77,7 +75,7 @@ CREATE TABLE `{$dbprefix}stats` (
|
|||||||
|
|
||||||
$install_sqls['users'] = "
|
$install_sqls['users'] = "
|
||||||
CREATE TABLE `{$dbprefix}users` (
|
CREATE TABLE `{$dbprefix}users` (
|
||||||
`id` int(10) NOT NULL auto_increment,
|
`id` int(10) NOT NULL auto_increment PRIMARY KEY,
|
||||||
`name` varchar(300) collate utf8_bin NOT NULL,
|
`name` varchar(300) collate utf8_bin NOT NULL,
|
||||||
`group_id` int(11) unsigned NOT NULL DEFAULT '3',
|
`group_id` int(11) unsigned NOT NULL DEFAULT '3',
|
||||||
`password` varchar(200) collate utf8_bin NOT NULL,
|
`password` varchar(200) collate utf8_bin NOT NULL,
|
||||||
@@ -91,7 +89,6 @@ CREATE TABLE `{$dbprefix}users` (
|
|||||||
`show_my_filecp` tinyint(1) unsigned NOT NULL default '1',
|
`show_my_filecp` tinyint(1) unsigned NOT NULL default '1',
|
||||||
`new_password` varchar(200) COLLATE utf8_bin NOT NULL DEFAULT '',
|
`new_password` varchar(200) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
`hash_key` varchar(200) COLLATE utf8_bin NOT NULL DEFAULT '',
|
`hash_key` varchar(200) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
KEY `clean_name` (`clean_name`(300)),
|
KEY `clean_name` (`clean_name`(300)),
|
||||||
KEY `group_id` (`group_id`)
|
KEY `group_id` (`group_id`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
@@ -99,7 +96,7 @@ CREATE TABLE `{$dbprefix}users` (
|
|||||||
|
|
||||||
$install_sqls['files'] = "
|
$install_sqls['files'] = "
|
||||||
CREATE TABLE `{$dbprefix}files` (
|
CREATE TABLE `{$dbprefix}files` (
|
||||||
`id` int(11) unsigned NOT NULL auto_increment,
|
`id` int(11) unsigned NOT NULL auto_increment PRIMARY KEY,
|
||||||
`last_down` int(11) unsigned NOT NULL DEFAULT '0',
|
`last_down` int(11) unsigned NOT NULL DEFAULT '0',
|
||||||
`name` varchar(300) collate utf8_bin NOT NULL DEFAULT '',
|
`name` varchar(300) collate utf8_bin NOT NULL DEFAULT '',
|
||||||
`real_filename` VARCHAR( 350 ) collate utf8_bin NOT NULL DEFAULT '',
|
`real_filename` VARCHAR( 350 ) collate utf8_bin NOT NULL DEFAULT '',
|
||||||
@@ -113,7 +110,6 @@ CREATE TABLE `{$dbprefix}files` (
|
|||||||
`code_del` varchar(150) collate utf8_bin NOT NULL DEFAULT '',
|
`code_del` varchar(150) collate utf8_bin NOT NULL DEFAULT '',
|
||||||
`user_ip` VARCHAR( 250 ) NOT NULL DEFAULT '',
|
`user_ip` VARCHAR( 250 ) NOT NULL DEFAULT '',
|
||||||
`id_form` VARCHAR( 100 ) NOT NULL DEFAULT 'id',
|
`id_form` VARCHAR( 100 ) NOT NULL DEFAULT 'id',
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
KEY `name` (`name`(300)),
|
KEY `name` (`name`(300)),
|
||||||
KEY `user` (`user`),
|
KEY `user` (`user`),
|
||||||
KEY `code_del` (`code_del`(150)),
|
KEY `code_del` (`code_del`(150)),
|
||||||
@@ -127,36 +123,22 @@ CREATE TABLE `{$dbprefix}files` (
|
|||||||
|
|
||||||
$install_sqls['config'] = "
|
$install_sqls['config'] = "
|
||||||
CREATE TABLE `{$dbprefix}config` (
|
CREATE TABLE `{$dbprefix}config` (
|
||||||
`name` varchar(255) collate utf8_bin NOT NULL,
|
`name` varchar(255) collate utf8_bin NOT NULL PRIMARY KEY,
|
||||||
`value` varchar(255) collate utf8_bin NOT NULL DEFAULT '',
|
`value` varchar(255) collate utf8_bin NOT NULL DEFAULT '',
|
||||||
`option` mediumtext collate utf8_bin NOT NULL DEFAULT '',
|
`option` mediumtext collate utf8_bin NOT NULL DEFAULT '',
|
||||||
`display_order` int(10) NOT NULL DEFAULT '1',
|
`display_order` int(10) NOT NULL DEFAULT '1',
|
||||||
`type` varchar(20) NULL DEFAULT 'other',
|
`type` varchar(20) NULL DEFAULT 'other',
|
||||||
`plg_id` int(11) NOT NULL DEFAULT '0',
|
`plg_id` int(11) NOT NULL DEFAULT '0',
|
||||||
`dynamic` tinyint(1) NOT NULL DEFAULT '0',
|
`dynamic` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
PRIMARY KEY (`name`),
|
|
||||||
KEY `type` (`type`),
|
KEY `type` (`type`),
|
||||||
KEY `plg_id` (`plg_id`)
|
KEY `plg_id` (`plg_id`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
";
|
";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// $install_sqls['hooks'] = "
|
|
||||||
// CREATE TABLE `{$dbprefix}hooks` (
|
|
||||||
// `hook_id` int(11) unsigned NOT NULL auto_increment,
|
|
||||||
// `plg_id` int(11) unsigned NOT NULL,
|
|
||||||
// `hook_name` varchar(255) collate utf8_bin NOT NULL,
|
|
||||||
// `hook_content` mediumtext collate utf8_bin NOT NULL,
|
|
||||||
// PRIMARY KEY (`hook_id`),
|
|
||||||
// KEY `plg_id` (`plg_id`)
|
|
||||||
// ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
||||||
// ";
|
|
||||||
|
|
||||||
|
|
||||||
$install_sqls['plugins'] = "
|
$install_sqls['plugins'] = "
|
||||||
CREATE TABLE `{$dbprefix}plugins` (
|
CREATE TABLE `{$dbprefix}plugins` (
|
||||||
`plg_id` int(11) unsigned NOT NULL auto_increment,
|
`plg_id` int(11) unsigned NOT NULL auto_increment PRIMARY KEY,
|
||||||
`plg_name` varchar(255) collate utf8_bin NOT NULL DEFAULT '',
|
`plg_name` varchar(255) collate utf8_bin NOT NULL DEFAULT '',
|
||||||
`plg_ver` varchar(255) collate utf8_bin NOT NULL,
|
`plg_ver` varchar(255) collate utf8_bin NOT NULL,
|
||||||
`plg_author` varchar(255) collate utf8_bin NOT NULL DEFAULT '',
|
`plg_author` varchar(255) collate utf8_bin NOT NULL DEFAULT '',
|
||||||
@@ -167,7 +149,6 @@ CREATE TABLE `{$dbprefix}plugins` (
|
|||||||
`plg_instructions` mediumtext COLLATE utf8_bin NOT NULL DEFAULT '',
|
`plg_instructions` mediumtext COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
`plg_store` longtext COLLATE utf8_bin NOT NULL DEFAULT '',
|
`plg_store` longtext COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
`plg_files` text COLLATE utf8_bin NOT NULL DEFAULT '',
|
`plg_files` text COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
PRIMARY KEY (`plg_id`),
|
|
||||||
KEY `plg_name` (`plg_name`)
|
KEY `plg_name` (`plg_name`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin ;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin ;
|
||||||
";
|
";
|
||||||
@@ -186,11 +167,10 @@ CREATE TABLE `{$dbprefix}lang` (
|
|||||||
|
|
||||||
$install_sqls['groups'] = "
|
$install_sqls['groups'] = "
|
||||||
CREATE TABLE `{$dbprefix}groups` (
|
CREATE TABLE `{$dbprefix}groups` (
|
||||||
`group_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
`group_id` int(11) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
`group_name` varchar(255) COLLATE utf8_bin NOT NULL,
|
`group_name` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||||
`group_is_default` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
`group_is_default` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
`group_is_essential` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
`group_is_essential` tinyint(1) unsigned NOT NULL DEFAULT '0'
|
||||||
PRIMARY KEY (`group_id`)
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
";
|
";
|
||||||
|
|
||||||
@@ -214,25 +194,23 @@ CREATE TABLE `{$dbprefix}groups_acl` (
|
|||||||
|
|
||||||
$install_sqls['groups_exts'] = "
|
$install_sqls['groups_exts'] = "
|
||||||
CREATE TABLE `{$dbprefix}groups_exts` (
|
CREATE TABLE `{$dbprefix}groups_exts` (
|
||||||
`ext_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
`ext_id` int(11) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
`ext` varchar(20) COLLATE utf8_bin NOT NULL,
|
`ext` varchar(20) COLLATE utf8_bin NOT NULL,
|
||||||
`group_id` int(11) unsigned NOT NULL DEFAULT '0',
|
`group_id` int(11) unsigned NOT NULL DEFAULT '0',
|
||||||
`size` bigint(11) unsigned NOT NULL DEFAULT '0',
|
`size` bigint(11) unsigned NOT NULL DEFAULT '0',
|
||||||
PRIMARY KEY (`ext_id`),
|
|
||||||
KEY `group_id` (`group_id`)
|
KEY `group_id` (`group_id`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1;
|
||||||
";
|
";
|
||||||
|
|
||||||
$install_sqls['filters'] = "
|
$install_sqls['filters'] = "
|
||||||
CREATE TABLE `{$dbprefix}filters` (
|
CREATE TABLE `{$dbprefix}filters` (
|
||||||
`filter_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
`filter_id` int(11) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
`filter_uid` varchar(30) COLLATE utf8_bin NOT NULL DEFAULT '',
|
`filter_uid` varchar(30) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
`filter_type` varchar(20) COLLATE utf8_bin NOT NULL,
|
`filter_type` varchar(20) COLLATE utf8_bin NOT NULL,
|
||||||
`filter_value` varchar(255) COLLATE utf8_bin NOT NULL,
|
`filter_value` varchar(255) COLLATE utf8_bin NOT NULL,
|
||||||
`filter_time` int(11) unsigned NOT NULL DEFAULT '0',
|
`filter_time` int(11) unsigned NOT NULL DEFAULT '0',
|
||||||
`filter_user` int(11) unsigned NOT NULL DEFAULT '0',
|
`filter_user` int(11) unsigned NOT NULL DEFAULT '0',
|
||||||
`filter_status` varchar(50) COLLATE utf8_bin NOT NULL DEFAULT '',
|
`filter_status` varchar(50) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
PRIMARY KEY (`filter_id`),
|
|
||||||
KEY `filter_user` (`filter_user`),
|
KEY `filter_user` (`filter_user`),
|
||||||
KEY `filter_uid` (`filter_uid`)
|
KEY `filter_uid` (`filter_uid`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;
|
||||||
|
|||||||
@@ -48,7 +48,15 @@ if (file_exists(PATH . 'config.php'))
|
|||||||
|
|
||||||
include_once PATH . 'includes/functions.php';
|
include_once PATH . 'includes/functions.php';
|
||||||
|
|
||||||
include_once PATH . 'includes/mysqli.php';
|
if (isset($dbtype) && $dbtype == 'sqlite')
|
||||||
|
{
|
||||||
|
include PATH . 'includes/sqlite.php';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
include PATH . 'includes/mysqli.php';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
include_once 'includes/functions_install.php';
|
include_once 'includes/functions_install.php';
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,14 @@ include_once PATH . 'includes/functions_alternative.php';
|
|||||||
include_once PATH . 'includes/functions.php';
|
include_once PATH . 'includes/functions.php';
|
||||||
|
|
||||||
|
|
||||||
include_once PATH . 'includes/mysqli.php';
|
if (isset($dbtype) && $dbtype == 'sqlite')
|
||||||
|
{
|
||||||
|
include PATH . 'includes/sqlite.php';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
include PATH . 'includes/mysqli.php';
|
||||||
|
}
|
||||||
|
|
||||||
include_once 'includes/functions_install.php';
|
include_once 'includes/functions_install.php';
|
||||||
|
|
||||||
@@ -149,9 +156,13 @@ case 'check':
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (! empty($SQL->mysql_version()) && version_compare($SQL->mysql_version(), MIN_MYSQL_VERSION, '<'))
|
|
||||||
|
if (defined('SQL_LAYER') && SQL_LAYER == 'mysqli')
|
||||||
{
|
{
|
||||||
$mysql_ver = $SQL->mysql_version();
|
if (! empty($SQL->version()) && version_compare($SQL->version(), MIN_MYSQL_VERSION, '<'))
|
||||||
|
{
|
||||||
|
$mysql_ver = $SQL->version();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,15 @@ include_once PATH . 'includes/plugins.php';
|
|||||||
include_once PATH . 'includes/functions_display.php';
|
include_once PATH . 'includes/functions_display.php';
|
||||||
include_once PATH . 'includes/functions_alternative.php';
|
include_once PATH . 'includes/functions_alternative.php';
|
||||||
include_once PATH . 'includes/functions.php';
|
include_once PATH . 'includes/functions.php';
|
||||||
include_once PATH . 'includes/mysqli.php';
|
|
||||||
|
if (isset($dbtype) && $dbtype == 'sqlite')
|
||||||
|
{
|
||||||
|
include PATH . 'includes/sqlite.php';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
include PATH . 'includes/mysqli.php';
|
||||||
|
}
|
||||||
|
|
||||||
include_once 'includes/functions_install.php';
|
include_once 'includes/functions_install.php';
|
||||||
|
|
||||||
@@ -56,9 +64,13 @@ if (! $SQL->is_connected())
|
|||||||
exit('Can not connect to database, please make sure the data in `config.php` is correct!');
|
exit('Can not connect to database, please make sure the data in `config.php` is correct!');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($SQL->mysql_version()) && version_compare($SQL->mysql_version(), MIN_MYSQL_VERSION, '<'))
|
|
||||||
|
if (defined('SQL_LAYER') && SQL_LAYER == 'mysqli')
|
||||||
{
|
{
|
||||||
exit('The required MySQL version is `' . MIN_MYSQL_VERSION . '` and yours is `' . $SQL->mysql_version() . '`!');
|
if (! empty($SQL->version()) && version_compare($SQL->version(), MIN_MYSQL_VERSION, '<'))
|
||||||
|
{
|
||||||
|
exit('The required MySQL version is `' . MIN_MYSQL_VERSION . '` and yours is `' . $SQL->version() . '`!');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (['cache', 'uploads', 'uploads/thumbs'] as $folder)
|
foreach (['cache', 'uploads', 'uploads/thumbs'] as $folder)
|
||||||
|
|||||||
@@ -28,7 +28,14 @@ include_once PATH . 'includes/plugins.php';
|
|||||||
include_once PATH . 'includes/functions.php';
|
include_once PATH . 'includes/functions.php';
|
||||||
include_once PATH . 'includes/functions_alternative.php';
|
include_once PATH . 'includes/functions_alternative.php';
|
||||||
|
|
||||||
include_once PATH . 'includes/mysqli.php';
|
if (isset($dbtype) && $dbtype == 'sqlite')
|
||||||
|
{
|
||||||
|
include PATH . 'includes/sqlite.php';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
include PATH . 'includes/mysqli.php';
|
||||||
|
}
|
||||||
|
|
||||||
include_once 'includes/functions_install.php';
|
include_once 'includes/functions_install.php';
|
||||||
include_once 'includes/update_schema.php';
|
include_once 'includes/update_schema.php';
|
||||||
|
|||||||
Reference in New Issue
Block a user