superedit-FILTER_SEARCH.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. //@2012-04-24 - bindera - added search of queries more ( > ) or less ( < ) ! (not like)
  3. //@2012-05-07 - plabudda - fix sql injection "<1); drop table XXX; -- "
  4. function FILTER_SEARCH() {
  5. global $thiss,$ARG1,$ARG1_VAL;
  6. SEF('RELATIVEDB_SRC_COLUMN');
  7. if (!empty($ARG1)) {
  8. if ($ARG1 == 'MENU_FIND') {
  9. if (!isset($_SESSION[$thiss->DETECT_TABLE_COLUMN]['MENU_FIND'])) {
  10. foreach ($_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC'] as $value) {
  11. $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FIND']["$value"] = "%";
  12. }
  13. }
  14. $_SESSION[$thiss->DETECT_TABLE_COLUMN]['MENU_FIND'] = $ARG1_VAL;
  15. if (!($ARG1_VAL)) {
  16. unset($_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL']);
  17. }
  18. }
  19. }
  20. if (($_POST) || ($_GET['ID_BILLING_USERS']) || $_GET['NAME_LIST_SERVICES']) {
  21. if (isset($_GET['NAME_LIST_SERVICES'])) {
  22. SEF('MENU_INIT_TRANSLATE');
  23. MENU_INIT_TRANSLATE($_GET['NAME_LIST_SERVICES']);
  24. }
  25. $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL'] = "and ( ".$thiss->DETECT_TABLE_NAME.".ID like '%' ";
  26. foreach ($_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC'] as $value) {
  27. //@2012-10-01 Czy nie jest HIDE!!!
  28. //@2012-10-12 usuwanie bledow warning by sqix
  29. if(isset($_SESSION[$thiss->DETECT_TABLE_COLUMN]['HIDE'][$_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC_TO_KEY'][$value]])) $TST121012['Line34']=$_SESSION[$thiss->DETECT_TABLE_COLUMN]['HIDE'][$_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC_TO_KEY'][$value]];
  30. else $TST121012['Line34']="";
  31. if(!$TST121012['Line34']=='HIDE') {
  32. // echo "Value nie hide : ".$value;
  33. if (isset($_REQUEST[$value])) {
  34. $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FIND']["$value"] = $_REQUEST[$value];
  35. //if (isset($_GET["$value"])) $_POST["$value"] = $_GET["$value"];// nie działa nadpisywanie POST przez GET
  36. if (is_array($_REQUEST[$value])) {
  37. if (in_array("%", $_REQUEST[$value])) {
  38. //$_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL'] .= " and " . RELATIVEDB_SRC_COLUMN($value) . " like '%' ";
  39. }
  40. else {
  41. $out_values_in = array();
  42. foreach ($_REQUEST[$value] as $v_value) {
  43. $out_values_in []= "'" . $v_value . "'";
  44. }//end foreach
  45. $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL'] .= " and " . RELATIVEDB_SRC_COLUMN($value) . " in(" . implode(",", $out_values_in) . ") ";
  46. }
  47. }
  48. else if ($_REQUEST[$value] == "%") {
  49. // echo "<hr>POST VALUE!!".$value;
  50. if(strlen(RELATIVEDB_SRC_COLUMN($value))<1)
  51. die("<br>ERROR: nie mozna znalezc RELATIVEDB_SRC_COLUMN(".$value.")");
  52. $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL'] .= " and ( ".RELATIVEDB_SRC_COLUMN($value)." like '".$_REQUEST[$value]."' or ".RELATIVEDB_SRC_COLUMN($value)." is NULL ) ";
  53. //ADDED BY BZYK @ 2012-01-20 - nie chcemy otomina
  54. # if (RELATIVEDB_SRC_COLUMN($value) == "USERS2.T_NETWORK_SERVER") $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL'] .= " and ".RELATIVEDB_SRC_COLUMN($value)." !='otomin.chelmnet.pl' ";
  55. # if (RELATIVEDB_SRC_COLUMN($value) == "SES_TV_A.T_NETWORK_SERVER") $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL'] .= " and ".RELATIVEDB_SRC_COLUMN($value)." !='SC-OTOMIN-TV' ";
  56. }
  57. else {
  58. // Obsługa >= <= !
  59. if ( $_REQUEST[$value][0] == "<" && $_REQUEST[$value][1] == "=") {
  60. $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL'] .= " and ".RELATIVEDB_SRC_COLUMN($value)." <= '".substr($_REQUEST[$value], 2)."' ";
  61. }
  62. else if ( $_REQUEST[$value][0] == ">" && $_REQUEST[$value][1] == "=") {
  63. $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL'] .= " and ".RELATIVEDB_SRC_COLUMN($value)." >= '".substr($_REQUEST[$value], 2)."' ";
  64. }
  65. else if ($_REQUEST[$value][0] == ">") {
  66. $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL'] .= " and ".RELATIVEDB_SRC_COLUMN($value)." > '".substr($_REQUEST[$value], 1)."' ";
  67. }
  68. else if ($_REQUEST[$value][0] == "<") {
  69. $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL'] .= " and ".RELATIVEDB_SRC_COLUMN($value)." < '".substr($_REQUEST[$value], 1)."' ";
  70. }
  71. else if ($_REQUEST[$value][0] == "!") {
  72. $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL'] .= " and ".RELATIVEDB_SRC_COLUMN($value)." not like '".substr($_REQUEST[$value],1)."' ";
  73. }
  74. else {
  75. $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL'] .= " and ".RELATIVEDB_SRC_COLUMN($value)." like '".$_REQUEST[$value]."' ";
  76. }
  77. }
  78. }
  79. }//EOF foreach
  80. } //eof czy nie jest HIDE
  81. $_SESSION[$thiss->DETECT_TABLE_COLUMN]['FINDSQL'] .= " ) ";
  82. }//EOF if($POST)
  83. }