Commit d2b06052fb617ae9f0e5b91bc6d34985238f2370
1 parent
08afa337
Exists in
master
Correção na função de substituição de chaves da ferramenta parametrossql. Ocorri…
…am erros quando campos de tipos diferentes não seguiam a mesma ordem das chaves
Showing
48 changed files
with
29 additions
and
12 deletions
Show diff stats
ferramentas/parametrossql/exec.php
| ... | ... | @@ -57,7 +57,24 @@ switch (strtoupper($funcao)) |
| 57 | 57 | */ |
| 58 | 58 | case "APLICAR": |
| 59 | 59 | $valores = $_GET["valores"]; |
| 60 | + $valores = str_ireplace(array(" and ", " or ", "select","from","where","update","delete","insert","--","drop",";"),"",$valores); | |
| 61 | + $valores = explode(",",$valores); | |
| 60 | 62 | $titulos = $_GET["titulos"]; |
| 63 | + $titulos = explode(",",$titulos); | |
| 64 | + $chaves = $_GET["chaves"]; | |
| 65 | + $chaves = str_ireplace(array(" and ", " or ", "select","from","where","update","delete","insert","--","drop",";"),"",$chaves); | |
| 66 | + $chaves = explode(",",$chaves); | |
| 67 | + if(count($chaves) <> count($valores)){ | |
| 68 | + echo "erro"; | |
| 69 | + exit; | |
| 70 | + } | |
| 71 | + //cria um array cuja key e a chave | |
| 72 | + $dados = array(); | |
| 73 | + $n = count($chaves); | |
| 74 | + for($i = 0; $i < $n; $i++){ | |
| 75 | + $dados[$chaves[$i]] = array("valor"=>$valores[$i],"titulo"=>$titulos[$i]); | |
| 76 | + } | |
| 77 | + | |
| 61 | 78 | $map = ms_newMapObj($map_file); |
| 62 | 79 | //pega o layer |
| 63 | 80 | $layer = $map->getlayerbyname($tema); |
| ... | ... | @@ -75,6 +92,7 @@ switch (strtoupper($funcao)) |
| 75 | 92 | $retorno = "erro"; |
| 76 | 93 | } |
| 77 | 94 | if($c != ""){ |
| 95 | + //pega as chaves originais do mapfile | |
| 78 | 96 | $cs = json_decode(utf8_encode($c),true); |
| 79 | 97 | $cs = $cs["parametros"]; |
| 80 | 98 | $chaves = array(); |
| ... | ... | @@ -82,20 +100,19 @@ switch (strtoupper($funcao)) |
| 82 | 100 | $chaves[] = $c["chave"]; |
| 83 | 101 | } |
| 84 | 102 | $chaves = implode(",",$chaves); |
| 103 | + $chaves = str_ireplace(array(" and ", " or ", "select","from","where","update","delete","insert","--","drop",";"),"",$chaves); | |
| 104 | + $chaves = explode(",",$chaves); | |
| 85 | 105 | $filtro = $layer1->getFilterString(); |
| 86 | - if(!empty($valores)){ | |
| 87 | - $chaves = str_ireplace(array(" and ", " or ", "select","from","where","update","delete","insert","--","drop",";"),"",$chaves); | |
| 88 | - $chaves = explode(",",$chaves); | |
| 89 | - $valores = str_ireplace(array(" and ", " or ", "select","from","where","update","delete","insert","--","drop",";"),"",$valores); | |
| 90 | - $valores = explode(",",strip_tags($valores)); | |
| 91 | - $n = count($chaves); | |
| 92 | - for($i = 0; $i < $n; $i++){ | |
| 93 | - if($chaves[$i] != ""){ | |
| 94 | - $v = $valores[$i]; | |
| 95 | - $data = str_replace($chaves[$i],$v,$data); | |
| 106 | + $titulofim = array(); | |
| 107 | + if(!empty($dados)){ | |
| 108 | + foreach($chaves as $k){ | |
| 109 | + if($k != ""){ | |
| 110 | + $v = $dados[$k]["valor"]; | |
| 111 | + $data = str_replace($k,$v,$data); | |
| 96 | 112 | if($filtro != ""){ |
| 97 | - $filtro = str_replace($chaves[$i],$v,$filtro); | |
| 113 | + $filtro = str_replace($k,$v,$filtro); | |
| 98 | 114 | } |
| 115 | + $titulofim[] = $dados[$k]["titulo"]." ".$v; | |
| 99 | 116 | } |
| 100 | 117 | } |
| 101 | 118 | if($filtro != ""){ |
| ... | ... | @@ -107,7 +124,7 @@ switch (strtoupper($funcao)) |
| 107 | 124 | $layer->set("status",MS_DEFAULT); |
| 108 | 125 | } |
| 109 | 126 | $layer->setmetadata("PLUGINI3GEO",'{"plugin":"parametrossql","ativo":"sim"}'); |
| 110 | - $layer->setmetadata("TEMA",$layer1->getmetadata("TEMA")." - ".$titulos); | |
| 127 | + $layer->setmetadata("TEMA",$layer1->getmetadata("TEMA")." - ".implode(". ",$titulofim)); | |
| 111 | 128 | |
| 112 | 129 | //$layer->set("name","plugin".nomeRandomico()); |
| 113 | 130 | $layer->setmetadata("nomeoriginal",$layer1->name); | ... | ... |