From b799107de5ca958ebba6aaa9a1087f436345e740 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Wed, 29 Jul 2015 10:35:01 +0000 Subject: [PATCH] * Admin: fix SQL error when search contains a non-ascii character --- etemplate/inc/class.so_sql.inc.php | 4 ++++ phpgwapi/inc/class.accounts_sql.inc.php | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/etemplate/inc/class.so_sql.inc.php b/etemplate/inc/class.so_sql.inc.php index 0200535ad5..ca583a945e 100644 --- a/etemplate/inc/class.so_sql.inc.php +++ b/etemplate/inc/class.so_sql.inc.php @@ -1249,6 +1249,10 @@ class so_sql $numeric_columns[] = $col; continue; } + if ($this->db->Type == 'mysql' && $table_def['fd'][$col_name]['type'] === 'ascii' && !preg_match('/[\x80-\xFF]/', $_pattern)) + { + continue; // will only give sql error + } $columns[] = sprintf($this->db->capabilities[egw_db::CAPABILITY_CAST_AS_VARCHAR],"COALESCE($col,'')"); } if($columns) diff --git a/phpgwapi/inc/class.accounts_sql.inc.php b/phpgwapi/inc/class.accounts_sql.inc.php index 95fe936b5b..889d7db189 100644 --- a/phpgwapi/inc/class.accounts_sql.inc.php +++ b/phpgwapi/inc/class.accounts_sql.inc.php @@ -424,7 +424,10 @@ class accounts_sql if (!isset($GLOBALS['egw_setup']) || in_array(emailadmin_smtp_sql::TABLE, $this->db->table_names(true))) { $email_cols = array('coalesce('.$this->contacts_table.'.contact_email,'.emailadmin_smtp_sql::TABLE.'.mail_value) as email'); - $search_cols[] = emailadmin_smtp_sql::TABLE.'.mail_value'; + if ($this->db->Type == 'mysql' && !preg_match('/[\x80-\xFF]/', $param['query'])) + { + $search_cols[] = emailadmin_smtp_sql::TABLE.'.mail_value'; + } $join .= ' LEFT JOIN '.emailadmin_smtp_sql::TABLE.' ON '.$this->table.'.account_id=-'.emailadmin_smtp_sql::TABLE.'.account_id AND mail_type='.emailadmin_smtp_sql::TYPE_ALIAS; }