Validar o parametro da url
05/12/2017
0
Estou utilizando o Projeto boletophp para gerar boleto itau
Preciso consistir se foi mudado os parametros da url
por exemplo:
Quando clico no botão gerar boleto chama a seguinte página
http://www.site.com.br/clientel/boleto/gera_boleto.php?id=1152&c=2391&banco=itau
a Id se refere ao cliente 1152 e ao boleto 2391 que estao em bases distintas.
O que acontece é que depois de mostrar o boleto na tela,
Se eu mudar a id por exemplo para 1151 vai alterar para este outro cliente,
ou se mudar o segundo codigo 2392 ele mostra o outro boleto e muito pior,
mistura o boleto de um cliente com cadastro de outro.
Como posso fazer para bloquear essa mudança ?
Juliana Carneiro
Post mais votado
06/12/2017
Mas imagino que a url para gerar o boleto, seja acessada por um link, nesse caso, substituo o link por um formulário com campos ocultos e com um único botão de submit, algo similar a isso:
<form action="http://www.site.com.br/clientel/boleto/gera_boleto.php" method="post"> <input type="hidden" name="id" value="1152"> <input type="hidden" name="c" value="2391"> <input type="hidden" name="banco" value="itau"> <button type="submit">Gerar Boleto</button> </form>
Assim, você pode utilizar o css para formatar o button como um link
Ismael Sousa
Mais Posts
06/12/2017
Juliana Carneiro
hoje esta assim o código.
<?php
// $dado_venc = $recibo->verificaValidade($row[ID]);
//if($recibo->linhas($dado_venc) > 0){?>
<a target="_blank" title="Clique aqui para gerar o boleto Itau " href="<?php echo $baseURL?>/adicional/boleto/gera_boleto.php?id=<?php echo $dados['ID']."&c=".$row['ID']?>&banco=itau" class="btn ui-state-default ui-corner-all">
<span class="ui-icon ui-icon-print"></span>
Gerar Boleto
</a>//
</td>
06/12/2017
Juliana Carneiro
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ID'].' LIMIT 1' at line 1
gera_boleto.php
require_once '../../adm/modulos/imoveis/classes/locacoes.class.php';
$clientes = new Clientes();
require_once("../../adm/classes/configuracoes.class.php");
$cfg = Config::getInstance()->get();
$baseURL = $cfg['baseURL'];
$locacoes = new Locacoes();
$dadosCliente = $clientes->getDados($_POST["id"]);
$dadosCliente["nome"] = utf8_encode($dadosCliente["nome"]);
$dadosRecibo = $locacoes->getDados($_POST["c"]);
switch ($_POST["banco"]){
case "sicredi" : $incfile = "boleto_sicredi.php";
break;
case "itau" : $incfile = "boleto_itau.php";
break;
}
include "$incfile";
?>
06/12/2017
Ismael Sousa
Quanto ao erro, utilize a função var_dump para ver as variáveis/valores que estão sendo recebidos via POST:
var_dump($_POST);
06/12/2017
Juliana Carneiro
Quanto ao erro, utilize a função var_dump para ver as variáveis/valores que estão sendo recebidos via POST:
var_dump($_POST);
No painel.php ( onde tem o post para o gerar_boleto.php)
Não estou sabendo passar os dados
o var_dump antes mostra o contéudo correto das variaves antes de chamar o gerar_boleto.php
mas o var_dump no gera_boleto.php mostra que somente "itau" passou, as outras variáves estao em branco
$recibo = new Locacoes();
$lista = $recibo->listaPorCliente($dados['ID']);
while ($row = mysql_fetch_array($lista)){
$pieces = explode("-", $row['data_vencimento']);
$data_venc = $pieces[2]."/".$pieces[1]."/".$pieces[0];
?>
<tr>
<td><?php echo $row['n_documento'];?></td>
<td><?php echo $data_venc;?></td>
<td>
<?php
// aqui conteudo correto
var_dump ($dados);
var_dump ($dados['ID']);
var_dump ($row['ID']);
?>
<form action="http://www.site.com.br/adicional/boleto/gera_boleto.php" method="post">
<input type="hidden" name="id" value=<?php $dados['ID']?>>
<input type="hidden" name="c" value=<?php $row['ID']?>>
<input type="hidden" name="banco" value="itau">
<button type="submit">Gerar Boleto</button>
</form>
gera_boleto.php
var_dump($_POST);
var_dump ($_POST["id"]);
var_dump ($_POST["c"]);
/// mostra o seguinte resultado na pagina
array(3) { ["id"]=> string(0) "" ["c"]=> string(0) "" ["banco"]=> string(4) "itau" } string(0) "" string(0) ""
$locacoes = new Locacoes();
$dadosCliente = $clientes->getDados($_POST["id"]);
$dadosCliente["nome"] = utf8_encode($dadosCliente["nome"]);
$dadosRecibo = $locacoes->getDados($_POST["c"]);
06/12/2017
Ismael Sousa
<?php $dados['ID']?>
tente algo como
<input type="hidden" name="id" value="<?php echo $dados["ID"]; ?>">
06/12/2017
Otavio Merces
07/12/2017
Juliana Carneiro
Deu tudo certo agora e ficou bem melhor, pois agora não mostra a ID na url.
Obrigada pela ajuda.
Clique aqui para fazer login e interagir na Comunidade :)