Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vebersol

[RESOLVIDO] Comportamento estranho

Recommended Posts

Desenvolvi um sistema para realizar consultas com vários ids pelo mysql.

 

O algoritmo que eu desenvolvi estava funcionando corretamente no meu servidor local. Quando mandei pra locaweb deu um erro estranho.

 

o código é esse:

$array_cidades = $_POST['cidades'];	$ncidades = count($array_cidades) - 1;		for($j = 0; $j <= $ncidades; $j++) {				if($j == $ncidades) {			$cidades .= $array_cidades[$j];		}		else {			$cidades .= $array_cidades[$j].",";		}	}

$_POST['cidades'] retorna um array de checkbox's com diversos números, que ao passados pelo for() ficam assim: 1,2,3,4,5,6

Mas no servidor da locaweb tá retornando assim: Array1,2,3,4,5,6

 

Vocês sabem porque isso ocorre? Alguma sugestão?

 

Desde já agradecido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu esqueci de comentar que já tinha feito isso... está normal:

 

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )

 

Antes desse código tem o form, que é esse:

 

<form id="filtro" name="filtro" method="post" action=""><hr />  <p><strong><a onclick="SelecionarTudo();" style="cursor:pointer;">Marcar Tudo</a> | <a onclick="DeselecionarTudo();" style="cursor:pointer;">Desmarcar Tudo</a></strong></p>  <hr /><fieldset><legend>Selecione as cidades</legend>  <div id="cidades">  <input type="checkbox" name="cidades[]" value="1" checked="checked" /> Pelotas<br /><input type="checkbox" name="cidades[]" value="2" checked="checked" /> Rio Grande<br /><input type="checkbox" name="cidades[]" value="3" checked="checked" /> São Lourenço do Sul<br /><input type="checkbox" name="cidades[]" value="4" checked="checked" /> Morro Redondo<br /><input type="checkbox" name="cidades[]" value="5" checked="checked" /> Capão do Leão<br /><input type="checkbox" name="cidades[]" value="6" checked="checked" /> Santa Vitória do Palmar<br />  </div></fieldset><fieldset><legend>Selecione os grupos</legend>  <div id="grupos">  <input type="checkbox" name="grupos[]" value="1" checked="checked"  onclick="SelecionarSubGrupos('1_Comercio','1', 'modulos/contato/');" /> Comercio<br /><blockquote id="1_Comercio"><input type="checkbox" name="subgrupos[]" value="2" checked="checked" /> Farmácias<br /><input type="checkbox" name="subgrupos[]" value="3" checked="checked" /> Academias<br /></blockquote><input type="checkbox" name="grupos[]" value="2" checked="checked"  onclick="SelecionarSubGrupos('2_Clínicas','2', 'modulos/contato/');" /> Clínicas<br /><blockquote id="2_Clínicas"><input type="checkbox" name="subgrupos[]" value="4" checked="checked" /> Coração<br /><input type="checkbox" name="subgrupos[]" value="5" checked="checked" /> Pediatria<br /></blockquote>  </div>  <p><input type="submit" name="submit" value="Enviar" /></p></fieldset></form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim:

 

PHP
$array_cidades = $_POST['cidades'];

$ncidades = count($array_cidades) - 1;    

    for($j = 0; $j < (sizeof($array_cidades)); $j++) {

        if($j == $ncidades) {

            $cidades .= $array_cidades[$j];

        } else {

            $cidades .= $array_cidades[$j].",";

        }

    }

 

ps: da echo no for, e no if, para ver se ele ta entrnado certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro SlyX,

 

Finalmente resolvi o problema. É incrível que algumas horas sem pensar no problema me fazem resolvê-lo na hora. O problema está na configuração do servidor. Eu não costumo trabalhar com uma opção que vem no php.ini que transforma uma string automaticamente em $_GET ou $_POST. O que estava acontecendo é que $cidades estava referindo-se a $_POST['cidades'], e quando o elemento 0 ($cidades[0]) era chamado no for, aparecia o array do $_POST. Estranho não. Pois deveria sobrescrever... Mas enfim, mudei os nomes das strings e deu tudo certo. Ficou assim:

 

$array_cidades = $_POST['cidades'];	$ncidades = count($array_cidades) - 1;		for($j = 0; $j <= $ncidades; $j++) {				if($j == $ncidades) {			$nmcidades .= $array_cidades[$j];		}		else {			$nmcidades .= $array_cidades[$j].",";		}	}

Portanto, agradeço a tua ajuda. Sempre que precisar dá um toque aí. Abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.