FIX Import in upgrade when using a socialnetwork field.
This commit is contained in:
parent
0fe65591e8
commit
34da698537
@ -182,9 +182,18 @@ interface Database
|
|||||||
*
|
*
|
||||||
* @param string $stringtoencode String to escape
|
* @param string $stringtoencode String to escape
|
||||||
* @return string String escaped
|
* @return string String escaped
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
public function escapeunderscore($stringtoencode);
|
public function escapeunderscore($stringtoencode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escape a string to insert data into a like
|
||||||
|
*
|
||||||
|
* @param string $stringtoencode String to escape
|
||||||
|
* @return string String escaped
|
||||||
|
*/
|
||||||
|
public function escapeforlike($stringtoencode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sanitize a string for SQL forging
|
* Sanitize a string for SQL forging
|
||||||
*
|
*
|
||||||
|
|||||||
@ -479,12 +479,24 @@ class DoliDBMysqli extends DoliDB
|
|||||||
*
|
*
|
||||||
* @param string $stringtoencode String to escape
|
* @param string $stringtoencode String to escape
|
||||||
* @return string String escaped
|
* @return string String escaped
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
public function escapeunderscore($stringtoencode)
|
public function escapeunderscore($stringtoencode)
|
||||||
{
|
{
|
||||||
return str_replace('_', '\_', (string) $stringtoencode);
|
return str_replace('_', '\_', (string) $stringtoencode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escape a string to insert data into a like
|
||||||
|
*
|
||||||
|
* @param string $stringtoencode String to escape
|
||||||
|
* @return string String escaped
|
||||||
|
*/
|
||||||
|
public function escapeforlike($stringtoencode)
|
||||||
|
{
|
||||||
|
return str_replace(array('_', '\\', '%'), array('\_', '\\\\', '\%'), (string) $stringtoencode);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return generic error code of last operation.
|
* Return generic error code of last operation.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -726,10 +726,22 @@ class DoliDBPgsql extends DoliDB
|
|||||||
*
|
*
|
||||||
* @param string $stringtoencode String to escape
|
* @param string $stringtoencode String to escape
|
||||||
* @return string String escaped
|
* @return string String escaped
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
public function escapeunderscore($stringtoencode)
|
public function escapeunderscore($stringtoencode)
|
||||||
{
|
{
|
||||||
return str_replace('_', '\_', $stringtoencode);
|
return str_replace('_', '\_', (string) $stringtoencode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escape a string to insert data into a like
|
||||||
|
*
|
||||||
|
* @param string $stringtoencode String to escape
|
||||||
|
* @return string String escaped
|
||||||
|
*/
|
||||||
|
public function escapeforlike($stringtoencode)
|
||||||
|
{
|
||||||
|
return str_replace(array('_', '\\', '%'), array('\_', '\\\\', '\%'), (string) $stringtoencode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -654,10 +654,22 @@ class DoliDBSqlite3 extends DoliDB
|
|||||||
*
|
*
|
||||||
* @param string $stringtoencode String to escape
|
* @param string $stringtoencode String to escape
|
||||||
* @return string String escaped
|
* @return string String escaped
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
public function escapeunderscore($stringtoencode)
|
public function escapeunderscore($stringtoencode)
|
||||||
{
|
{
|
||||||
return str_replace('_', '\_', $stringtoencode);
|
return str_replace('_', '\_', (string) $stringtoencode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escape a string to insert data into a like
|
||||||
|
*
|
||||||
|
* @param string $stringtoencode String to escape
|
||||||
|
* @return string String escaped
|
||||||
|
*/
|
||||||
|
public function escapeforlike($stringtoencode)
|
||||||
|
{
|
||||||
|
return str_replace(array('_', '\\', '%'), array('\_', '\\\\', '\%'), (string) $stringtoencode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -947,11 +947,11 @@ function getPagesFromSearchCriterias($type, $algo, $searchstring, $max = 25, $so
|
|||||||
$sql .= " AND (";
|
$sql .= " AND (";
|
||||||
$searchalgo = '';
|
$searchalgo = '';
|
||||||
if (preg_match('/meta/', $algo)) {
|
if (preg_match('/meta/', $algo)) {
|
||||||
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.title LIKE '%".$db->escapeunderscore($db->escape($searchstring))."%' OR wp.description LIKE '%".$db->escapeunderscore($db->escape($searchstring))."%'";
|
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.title LIKE '%".$db->escapeforlike($db->escape($searchstring))."%' OR wp.description LIKE '%".$db->escapeforlike($db->escape($searchstring))."%'";
|
||||||
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.keywords LIKE '".$db->escapeunderscore($db->escape($searchstring)).",%' OR wp.keywords LIKE '% ".$db->escapeunderscore($db->escape($searchstring))."%'"; // TODO Use a better way to scan keywords
|
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.keywords LIKE '".$db->escapeforlike($db->escape($searchstring)).",%' OR wp.keywords LIKE '% ".$db->escapeforlike($db->escape($searchstring))."%'"; // TODO Use a better way to scan keywords
|
||||||
}
|
}
|
||||||
if (preg_match('/content/', $algo)) {
|
if (preg_match('/content/', $algo)) {
|
||||||
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.content LIKE '%".$db->escapeunderscore($db->escape($searchstring))."%'";
|
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.content LIKE '%".$db->escapeforlike($db->escape($searchstring))."%'";
|
||||||
}
|
}
|
||||||
$sql .= $searchalgo;
|
$sql .= $searchalgo;
|
||||||
if (is_array($otherfilters) && !empty($otherfilters['category'])) {
|
if (is_array($otherfilters) && !empty($otherfilters['category'])) {
|
||||||
|
|||||||
@ -835,8 +835,8 @@ class ImportCsv extends ModeleImports
|
|||||||
$sqlSelect = "SELECT ".$fname." FROM ".$tablename;
|
$sqlSelect = "SELECT ".$fname." FROM ".$tablename;
|
||||||
|
|
||||||
$data = array_combine($listfields, $listvalues);
|
$data = array_combine($listfields, $listvalues);
|
||||||
$where = array();
|
$where = array(); // filters to forge SQL request
|
||||||
$filters = array();
|
$filters = array(); // filters to forge output error message
|
||||||
foreach ($updatekeys as $key) {
|
foreach ($updatekeys as $key) {
|
||||||
$col = $objimport->array_import_updatekeys[0][$key];
|
$col = $objimport->array_import_updatekeys[0][$key];
|
||||||
$key = preg_replace('/^.*\./i', '', $key);
|
$key = preg_replace('/^.*\./i', '', $key);
|
||||||
@ -846,8 +846,12 @@ class ImportCsv extends ModeleImports
|
|||||||
$socialnetwork = $tmp[1];
|
$socialnetwork = $tmp[1];
|
||||||
$jsondata = $data[$key];
|
$jsondata = $data[$key];
|
||||||
$json = json_decode($jsondata);
|
$json = json_decode($jsondata);
|
||||||
$where[] = $key." LIKE '%\"".$socialnetwork."\":\"".$this->db->escape($json->$socialnetwork)."\"%'";
|
$stringtosearch = json_encode($socialnetwork).':'.json_encode($json->$socialnetwork);
|
||||||
$filters[] = $col." LIKE '%\"".$socialnetwork."\":\"".$this->db->escape($json->$socialnetwork)."\"%'";
|
//var_dump($stringtosearch);
|
||||||
|
//var_dump($this->db->escape($stringtosearch)); // This provide a value for sql string (but not for a like)
|
||||||
|
$where[] = $key." LIKE '%".$this->db->escapeforlike($this->db->escape($stringtosearch))."%'";
|
||||||
|
$filters[] = $col." LIKE '%".$this->db->escapeforlike($this->db->escape($stringtosearch))."%'";
|
||||||
|
//var_dump($where[1]); // This provide a value for sql string inside a like
|
||||||
} else {
|
} else {
|
||||||
$where[] = $key.' = '.$data[$key];
|
$where[] = $key.' = '.$data[$key];
|
||||||
$filters[] = $col.' = '.$data[$key];
|
$filters[] = $col.' = '.$data[$key];
|
||||||
|
|||||||
@ -891,8 +891,12 @@ class ImportXlsx extends ModeleImports
|
|||||||
$socialnetwork = $tmp[1];
|
$socialnetwork = $tmp[1];
|
||||||
$jsondata = $data[$key];
|
$jsondata = $data[$key];
|
||||||
$json = json_decode($jsondata);
|
$json = json_decode($jsondata);
|
||||||
$where[] = $key." LIKE '%\"".$socialnetwork."\":\"".$this->db->escape($json->$socialnetwork)."\"%'";
|
$stringtosearch = json_encode($socialnetwork).':'.json_encode($json->$socialnetwork);
|
||||||
$filters[] = $col." LIKE '%\"".$socialnetwork."\":\"".$this->db->escape($json->$socialnetwork)."\"%'";
|
//var_dump($stringtosearch);
|
||||||
|
//var_dump($this->db->escape($stringtosearch)); // This provide a value for sql string (but not for a like)
|
||||||
|
$where[] = $key." LIKE '%".$this->db->escapeforlike($this->db->escape($stringtosearch))."%'";
|
||||||
|
$filters[] = $col." LIKE '%".$this->db->escapeforlike($this->db->escape($stringtosearch))."%'";
|
||||||
|
//var_dump($where[1]); // This provide a value for sql string inside a like
|
||||||
} else {
|
} else {
|
||||||
$where[] = $key.' = '.$data[$key];
|
$where[] = $key.' = '.$data[$key];
|
||||||
$filters[] = $col.' = '.$data[$key];
|
$filters[] = $col.' = '.$data[$key];
|
||||||
|
|||||||
@ -255,12 +255,24 @@ class TraceableDB extends DoliDB
|
|||||||
*
|
*
|
||||||
* @param string $stringtoencode String to escape
|
* @param string $stringtoencode String to escape
|
||||||
* @return string String escaped
|
* @return string String escaped
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
public function escapeunderscore($stringtoencode)
|
public function escapeunderscore($stringtoencode)
|
||||||
{
|
{
|
||||||
return $this->db->escapeunderscore($stringtoencode);
|
return $this->db->escapeunderscore($stringtoencode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escape a string to insert data into a like
|
||||||
|
*
|
||||||
|
* @param string $stringtoencode String to escape
|
||||||
|
* @return string String escaped
|
||||||
|
*/
|
||||||
|
public function escapeforlike($stringtoencode)
|
||||||
|
{
|
||||||
|
return str_replace(array('_', '\\', '%'), array('\_', '\\\\', '\%'), (string) $stringtoencode);
|
||||||
|
}
|
||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
/**
|
/**
|
||||||
* Get last ID after an insert INSERT
|
* Get last ID after an insert INSERT
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user