paulo.cez 0 Denunciar post Postado Junho 18, 2013 Boa Tarde Amigo! Tenho uma pagina com algumas variaveis passando para outra pagina via url e recebendo via $_GET. Mas em uma das variaveis, armazeno o nome da empresa e algumas tem em seu nome o caracter "&". Ao passar para a outra pagina, só é exibido a informação antes do "&" Exemplo: Nome da Empresa: W & S CONFECÇOES LTDA Nesse caso só é exibido o "W" e nada mais. Quando o nome da empresa não tem esse caracter, a informação é exibida sem problema. Alguem poderia me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Junho 18, 2013 http://php.net/htmlspecialchars http://php.net/htmlentities Compartilhar este post Link para o post Compartilhar em outros sites
mangakah 217 Denunciar post Postado Junho 18, 2013 E é um caractere especial em URLs. Na Query string, [inline]&[/inline] serve para separar um paramento de outro, portanto, quando for passado por uma URL, [inline]&[/inline] deve ser codificado como [inline]%26[/inline]. Não é adequado usar [inline]GET[/inline] para submeter informações, nestes casos você deve usar o método [inline]POST[/inline]. Mude isso e não terá mais problemas. Compartilhar este post Link para o post Compartilhar em outros sites
Lauro Daniel 15 Denunciar post Postado Junho 18, 2013 Exatamente, o & é o separador do GET. Passe os dados por post, uma dica dica é usar input type="hidden" caso não queira que estes dados sejam exibidos na tela. Compartilhar este post Link para o post Compartilhar em outros sites
paulo.cez 0 Denunciar post Postado Junho 19, 2013 Claro! Entendo, que não é adequado passar dados por url, mas como se trata de uma pagina interna da empresa, não tem problema. Já tentei usar o metodo post, mas ao passar para outra pagina os dados iam vazios. Segue parte do script while($linha = pg_fetch_array($res1)) { echo '<tr>'; echo '<tr bgcolor ="#ccc"><font color = $cor>'; echo '<td>11716970000000<font color= ##00008B $cor size= 4>'. $linha['dpenosnum'] . '</td>'; echo '<td>' . $linha['dpepar'] . '</td>'; echo '<td>' . $linha['dpenumnot'] . '</td>'; echo '<td>' . $linha['dpedatemi'] . '</td>'; echo '<td>R$ ' . $linha['dpevlrpar'] . '</td>'; echo '<td>' . $linha['dpedatven'] . '</td>'; echo '<td>' . $linha['clicod'].'--' .$linha['clinom'] . '</td>'; echo '<td>' . $linha['usunom'] . '</td>'; echo "<td><a href='boleto.php?nota=$linha[dpenumnot]&parcela=$linha[dpepar]&datavenda=$linha[dpedatemi]&vlrparcela=$linha[dpevlrpar]&cliente=$linha[clinom]&endereco=$linha[cliend]&numero=$linha[cliendnum]&cidade=$linha[clicid]&estado=$linha[cliest]&cep=$linha[clicep]&vencimento=$linha[dpedatven]&nosnum=$linha[dpenosnum]'>Imprimir Boleto</a></td>"; e no boleto.php $dadosboleto["nosso_numero"] = $_GET['nosnum']; Sobre este problema do caracter "&", existe uma forma de isolar, ou eu tenho que mudar para o $_POST? Compartilhar este post Link para o post Compartilhar em outros sites
mangakah 217 Denunciar post Postado Junho 19, 2013 Em qual navegador você está fazendo isso? Geralmente o navegador faz a conversão. Por exemplo, no navegador que uso (Chrome 27), ao digitar no campo o nome "Procter & Gamble", ele automaticamente converte para "Procter+%26+Gamble" na URL, para não haver problemas. Em navegadores antigos, talvez isso não seja feito adequadamente... De qualquer forma, eu repito, [inline]GET[/inline] não é o método apropriado para transmitir esse tipo de dado. Compartilhar este post Link para o post Compartilhar em outros sites
paulo.cez 0 Denunciar post Postado Junho 19, 2013 Ola mangakah O meu também é 27 e mesmo assim não converte, o internet explorer também não! Como posso converter este método para $_POST? Compartilhar este post Link para o post Compartilhar em outros sites
mangakah 217 Denunciar post Postado Junho 19, 2013 Na sua tag [inline]<form>[/inline], coloque "post" no atributo [inline]method[/inline]: <form method="post"> (se esse atributo não existir na sua tag [inline]<form>[/inline], basta adicioná-lo) O dados não estarão mais em [inline]$_GET[/inline], mas em sim [inline]$_POST[/inline]. Compartilhar este post Link para o post Compartilhar em outros sites
paulo.cez 0 Denunciar post Postado Junho 19, 2013 Sim, entendo Só que quando vou passar as variavies o valor não passa Exemplo <form name = "frmboletos" method="POST" action = "boletos.php"> boleto inicial:<input type="hidden" size="6" name = "nosso" value="$linha[dpenosnum]"> <input type="submit" value="CONSULTAR"> O VALUE = aparece vazio, ou aparece com a informação $linha[dpenosnum] em vez do numero. Se eu coloco o valor fixo na variavel value ele passa normal, mas se eu coloco uma variavel, não Compartilhar este post Link para o post Compartilhar em outros sites
mangakah 217 Denunciar post Postado Junho 19, 2013 Você está misturando HTML com PHP aí... tem de ser: value="<?php echo $linha[dpenosnum]; ?>" Você precisa sempre incluir as tags de abertura e fechamento de bloco de código e o comando [inline]echo[/inline]. Compartilhar este post Link para o post Compartilhar em outros sites
paulo.cez 0 Denunciar post Postado Junho 19, 2013 Amigo fiz como pediu echo "<tr bgcolor = $cor >"; echo '<td>' . $linha['dpenosnum'] . '</td>'; echo '<td>' . $linha['dpenumnot'] . '</td>'; echo '<td>' . $linha['dpedatemi'] . '</td>'; echo '<td>R$ ' . $linha['dpevlrpar'] . '</td>'; echo '<td>' . $linha['dpedatven'] . '</td>'; echo '<td>' . $linha['clinom'] . '</td>'; echo '<td>' . $linha['usunom'] . '</td>'; echo '<td><form name = "frmboletos2" method="POST" action = "boleto_bb2.php"><input type="hidden" name = "nosnum" value="< ?php echo $linha[dpenosnum]; ?>"><input type="submit" value="CONSULTAR">'; e na outra pagina assim: $dadosboleto["nosso_numero"] = $_POST['nosnum']; mas o valor que é recebido é "< ?php echo $linha[dpenosnum]; ?>" e não o valor armazenado na variavel. Tentei tirar os aspas entre os <> mas ai o é exbido somente o "<" no resultado. o que á de errado? Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Junho 19, 2013 Há de errado que você não concatenou strings. Veja, a partir do momento que você abre uma aspa: [inline]echo '[/inline], você diz ao PHP: "Imprima na tela isso aqui... Não percebeu o desencontro ali? Você tem [inline]echo[/inline] dentro de echo?? echo '<td><form [...] value="< ?php echo $linha [...] Mais uma coisa: Se você já está no PHP, não precisa "abrir php ([inline]<?php[/inline])".echo '<td><form ...><input type="hidden" ... value="' . $variavel . '">...'; http://php.net/string Compartilhar este post Link para o post Compartilhar em outros sites
paulo.cez 0 Denunciar post Postado Junho 19, 2013 Obrigado Evandro Oliveira! Resolvido, só que quando clico em qualquer botão submit "consultar" ele só envia o ultimo resultado da linha, que neste exemplo é o 562, problema que não acontecia com o metodo usando $_GET EXEMPLO: BOLETO NOTA DATA VLR_PARCELA VENCIMENTO CLIENTE 560 2747 03/06/2013 R$ 890.00 18/07/2013 W & S CONFECÇOES LTDA 561 2747 03/06/2013 R$ 890.00 17/08/2013 W & S CONFECÇOES LTDA 562 2747 03/06/2013 R$ 890.00 16/09/2013 W & S CONFECÇOES LTDA Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Junho 19, 2013 Abra apenas um form antes da tabela. Você tem um formulário em cada linha. Compartilhar este post Link para o post Compartilhar em outros sites
paulo.cez 0 Denunciar post Postado Junho 19, 2013 consegui, esqueci de fechar o form no final. So mais um probleminha... ao passar o valor para a pagina acontece o seguinte: a variavel "nosnum" é adicionada ao um outro valor que fica assim: 11716970000000559 sendo que o valor passado nessa variavel é o valor 559 e quando eu uso pelo form o nosnum fica assim 1171697567 comendo os "0" zeros que tem no meio. Agora se eu fixo o valor na variavel onde tem o $_POST, tipo $dadosboleto["nosso_numero"] = "559" ao inves de $dadosboleto["nosso_numero"] = $_POST['nosnum']; o sistema informa o nosso numero correto. Sera que tenho que converter a variavel em string? Resolvido, converti a variavel em inteiro usando (int) Obrigado ao pessoal que me ajudou: mangakah e Evadnro Oliveira Vivendo e aprendendo. Compartilhar este post Link para o post Compartilhar em outros sites