Ir para conteúdo
Fórum Script Brasil
  • 0

filter_input (INPUT_GET, variable) não funciona


souzalm

Pergunta

O $valor1 não está puxando da URL abaixo:

http://localhost/bisaweb2/movimentacao_financeira/edicaomovimentacao.php?id_movimentacao=1&descricao_movimentacao=Compra%20pela%20Internet&tipo_movimentacao=Receita&data_movimentacao=2020-04-20&valor1=111.12&conta_bancaria=31

Alguma sugestão?

Arquivo: alterar_movimentacao.php:

<?php

    require_once '../user.php';
    require_once '../funcoes.php';

    /* Atribuição de valores as variáveis $descricao_conta e $saldo_inicial. */
    $id_movimentacao = filter_input (INPUT_GET, "id_movimentacao");
    $descricao_movimentacao = filter_input (INPUT_GET, "descricao_movimentacao");
    $tipo_movimentacao = filter_input (INPUT_GET, "tipo_movimentacao");
    $data_movimentacao = traduz_data_para_banco(filter_input (INPUT_GET, "data_movimentacao"));
    $valor1 = filter_input (INPUT_GET, "valor1");

    if (isset($_GET["valor2"])) {
    $getvalor2 = $_GET["valor2"];
    $valor2 = filter_var($getvalor2, FILTER_VALIDATE_FLOAT, DECIMAL);
    $valor3 = number_format($valor2, 2, '.','');
    }

    /* Verifica se está puxando conta_bancaria da URL e faz a atribuição de $conta_bancaria. */
    if (isset($_GET["conta_bancaria"])) {
    $getId = $_GET["conta_bancaria"];
    $conta_bancaria = filter_var($getId, FILTER_SANITIZE_NUMBER_INT);
    }

    /* Confere se é possível se conectar ao BD, emite mensagem se houver erro e apaga as querys, realiza o UPDATE e retorna para template_movimentacao.php. */
    if ($conn = mysqli_connect($host, $bdUsuario, $bdSenha, $bdBanco)) {
        echo "Connectado ao $bdBanco em $host com sucesso.";
        echo " valor1 = $valor1";
        echo " valor2 = $valor2";
        echo " getvalor1 = $getvalor1";
        echo !empty($_GET["valor1"]);
        var_dump(isset($_GET["valor1"]));
        if ($valor2 > 0) {
            $query1 = mysqli_query($conn, "SELECT * FROM conta_bancaria WHERE id_conta = '$conta_bancaria';");
            if (mysqli_num_rows($query1) == 1) {
                $query2 = mysqli_query($conn, "UPDATE movimentacao_financeira SET descricao_movimentacao='$descricao_movimentacao', tipo_movimentacao='$tipo_movimentacao', data_movimentacao='$data_movimentacao', valor='$valor2', conta_bancaria='$conta_bancaria' WHERE id_movimentacao='$id_movimentacao';");
                switch (strcasecmp($tipo_movimentacao, 'Receita')) {
                    case 0:
                        $query3 = mysqli_query($conn, "UPDATE conta_bancaria SET saldo_inicial=saldo_inicial-'$valor1' WHERE id_conta='$conta_bancaria';");
                        $query4 = mysqli_query($conn, "UPDATE conta_bancaria SET saldo_inicial=saldo_inicial+'$valor2' WHERE id_conta='$conta_bancaria';");
                        break;
                    case -14:
                        $query5 = mysqli_query($conn, "UPDATE conta_bancaria SET saldo_inicial=saldo_inicial-'$valor' WHERE id_conta='$conta_bancaria';");
                        break;
                }   
                if ($query3 OR $query4) {
                    header("Location: template_movimentacao.php");
                }
            }   
        } else {
            die ("Deve-se inserir uma Conta Bancária cadastrada.");
            unset($query1);
            unset($query2);
            }
    } else {
        echo "Valor não pode ser menor que 0.";
        unset($query1);
        }

    /* Se não for possível se conectar ao BD, emite mensagem. */
    if (mysqli_connect_errno($conn)) { 
        echo "Problemas para conectar no banco. Verifique os dados!"; 
        die(); 
    }
    ?>

Eu faço uma ação no formulário abaixo nesse arquivo edicaomovimentacao.php:

 

<h1>Sistema de Gestão Financeira - Alterar Conta Bancária</h1>
            <p>
            <form action="alterar_movimentacao.php">
                <input type="hidden" name="id_movimentacao" value="<?php echo $id_movimentacao ?>"/>
                Descrição da Movimentação Financeira: <input type="text" name="descricao_movimentacao" value="<?php echo $descricao_movimentacao ?>"/> <br />
                Tipo da Movimentação Financeira: <input type="text" name="tipo_movimentacao" value="<?php echo $tipo_movimentacao ?>"/> <br/>
                Data da Movimentação Financeira: <input type="text" name="data_movimentacao" value="<?php echo traduz_data_para_exibir($data_movimentacao) ?>"/> <br />
                Valor da Movimentação Financeira: <input type="text" name="valor2" value="<?php echo $valor ?>"/> <br />
                Conta Bancária da Movimentação Financeira: <input type="text" name="conta_bancaria" value="<?php echo $conta_bancaria ?>"/> <br />
                <input type="submit" value="Alterar"/>
            </form>
            </p>

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

O filter_input(INPUT_GET,'valor1') não funciona mesmo. O formulário não mandou nenhum valor com a chave 'valor1', logo o PHP deveria disparar um erro reclamando que não encontrou a chave. Ao invés de usar o filter_input o melhor é usar $_GET:

 

<?php
if(filter_input(INPUT_GET,"id")=="")
{
  goto Formulario;
}
echo filter_input (INPUT_GET, "valor1"); // não dispara mensagem de erro
echo $_GET["valor1"]; // dispara mensagem de erro
exit;

Formulario: 
$id=1;
$descricao="Compra pela internet";
$tipo="Receita";
$data='2020-04-20';
$valor=111.12;
$conta=31;
?>
<form>
  <input type="hidden" name="id" value="<?=$id?>">
  <table>
  <tr><td>Descrição: <input name="descricao" value="<?=$descricao?>">
  <tr><td>Tipo: <input name="tipo" value="<?=$tipo?>"> 
  <tr><td>Data: <input name="data" value="<?=$data?>">
  <tr><td>Valor: <input name="valor2" value="<?=$valor?>">
  <tr><td>Conta: <input name="conta" value="<?=$conta?>">
  <tr><td><input type=submit>
  </table>
</form>

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...