developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Ticket #906: patch_jDaoConditions.class.php

File patch_jDaoConditions.class.php, 1.2 KB (added by Torgan, 12 years ago)

Patch sur jDaoCondition (version opt)

Line 
1--- /usr/local/share/jelix/lib-1.1.2-opt/jelix/dao/jDaoConditions.class.php.orig        2009-04-08 17:05:31.000000000 +0200
2+++ /usr/local/share/jelix/lib-1.1.2-opt/jelix/dao/jDaoConditions.class.php     2009-04-08 17:19:25.000000000 +0200
3@@ -65,13 +65,18 @@
4        }
5        function addCondition($field_id, $operator, $value, $foo = false){
6                $operator = trim(strtoupper($operator));
7-               if(!in_array($operator, array('=', '<>', '!=', '<', '>', '>=', '<=', 'LIKE',
8-                                                                          'IN', 'NOT IN', '<=>', 'IS', 'IS NOT', 'IS NULL', 'IS NOT NULL', 'MATCH',
9+               if(preg_match ('/^[^\w\d\s;\(\)]+$/', $operator) or in_array($operator, array('LIKE',
10+                                                                          'IN', 'NOT IN', 'IS', 'IS NOT', 'IS NULL', 'IS NOT NULL', 'MATCH',
11                                                                           'REGEXP', 'NOT REGEXP', 'RLIKE', 'SOUNDS LIKE')))
12+               {
13+                       $this->_currentCondition->conditions[] = array(
14+                          'field_id'=>$field_id,
15+                          'value'=>$value,
16+                          'operator'=>$operator, 'isExpr'=>$foo);
17+               }
18+               else
19+               {
20                        throw new jException('jelix~dao.error.bad.operator', $operator);
21-               $this->_currentCondition->conditions[] = array(
22-                  'field_id'=>$field_id,
23-                  'value'=>$value,
24-                  'operator'=>$operator, 'isExpr'=>$foo);
25+               }
26        }
27 }