}
}
+ // Quote a string safely for SQL
+ public function quote(string $str): string {
+ return $this->connection->quote($str);
+ }
}
-
//==============================================================
//
// To open (according DBTYP) A database acces
$rqst = new probe("actions",$limit,$offset);
-if (isset($_POST['columns'])) { //selected database columns name
- $cols=intval($_POST['columns']);
- $rqst->columns($cols);
- }
+if (isset($_POST['columns']) && is_array($_POST['columns'])) {
+ $cols = $_POST['columns']; // conserver tableau tel quel
+ $rqst->columns($cols);
+}
+
if (isset($_POST['dsearch'])) {
$dsearch=trim($_POST['dsearch']);
if (strlen($dsearch)>0) {
$selectedField = 'rcptto';
// filtrage selon le champ choisi
+ $safeSearch = $this->db->quote('%' . $dsearch . '%');
if ($selectedField === 'creation') {
// pour la date, on peut filtrer par LIKE
- $rqst->where("$selectedField::text LIKE '%$dsearch%'");
+ $rqst->where("$selectedField::text LIKE $safeSearch");
}
else {
- $rqst->where("$selectedField LIKE '%$dsearch%'");
+ $rqst->where("$selectedField LIKE $safeSearch");
}
}
}