Ir para conteúdo
Fórum Script Brasil

netocazuza

Membros
  • Total de itens

    55
  • Registro em

  • Última visita

Posts postados por netocazuza

  1. Tenho um sistema de login funcionando, checando usuário e senha para autenticar. Tá tudo funcional até agora, mas surgiu a necessidade de criar permissões, e estou meio perdido. Já criei o item permissões na tabela, e tentei algumas implementações, mas até agora, nada funcionou. Ou não abre, ou abre permitindo tudo.

    Atualmente funciona assim:

    O arquivo abaixo verifica login e senha e dá acesso:

    <?php
    session_start();
    include 'conexao/conexao.php';
    $usuario = $_POST['usuario'];
    $senha = $_POST['senha'];
    
    $sql = "SELECT * FROM usuarioX WHERE usuarioX = '$usuario'";
    $busca = mysqli_query($conexao, $sql);
    
    #Buscar senha
    
    $dados = mysqli_fetch_array($busca);
    $senhabd = $dados['senhaX'];
    
    $senhaVerificada = ($senha);
    
    #Verifica niveis de permissoes usuario
    
    #QUERO COLOCAR AS PERMISSÕES AQUI
    #Verifica se existe o usuario
    
    $linha = mysqli_affected_rows($conexao);
    if ($linha == 1) {
        if ($senhabd == $senhaVerificada) {
            $_SESSION['usuario'] = $usuario;
            header('Location: index.php');
       } else {
            header('Location: login.php?id=1');
    
        }
    } else {
        
       header('Location: login.php?id=2');
    
    }
    ?>


    No código acima, caso usuário e senha confira, ele direciona para o index, do contrário volta para o login. O que pretendo é acrescentar permissões de professor, aluno e pai. Tipo se 1 nas permissões, abrir o index. Se 2 nas permissões, abrir o aluno.php, e se 3 nas permissões, abrir o pai.php. Logo abaixo vou listar a página index, pois acredito que nela tem alguma ação que tá impedindo essa minha lógica. A idéia seria ter uma página dessa (index) para cada usuário, ou uma idéia melhor, caso alguém tenha.

    <?php
    
    session_start();
    if (!isset ($_SESSION['usuario']) == true)
    {
        unset($_SESSION['login']);
        header('Location: login.php');
    }
    $logado = $_SESSION['usuario'];
    ?>
    <!DOCTYPE html>
    <html>
    <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      
      <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
      <title>
        Dashboard - 
      </title>
      <!-- Favicon -->
      <link href="./assets/img/brand/favicon.png" rel="icon" type="image/png">
      <!-- Fonts -->
      <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" rel="stylesheet">
      <!-- Icons -->
      <link href="./assets/js/plugins/nucleo/css/nucleo.css" rel="stylesheet" />
      <link href="./assets/js/plugins/@fortawesome/fontawesome-free/css/all.min.css" rel="stylesheet" />
      <!-- CSS Files -->
      <link href="./assets/css/argon-dashboard.css?v=1.1.0" rel="stylesheet" />
    </head>
    
    <body>
    <nav class="navbar navbar-vertical fixed-left navbar-expand-md navbar-light bg-white" id="sidenav-main">
        <div class="container-fluid">
          <!-- Toggler -->
          <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#sidenav-collapse-main" aria-controls="sidenav-main" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
          </button>
          <!-- Brand -->
          <a class="navbar-brand pt-0" href="./index.html">
            <img src="./assets/img/brand/blue.png" class="navbar-brand-img" alt="...">
          </a>
          <!-- User -->
          <ul class="nav align-items-center d-md-none">
            <li class="nav-item dropdown">
              <a class="nav-link nav-link-icon" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                <i class="ni ni-bell-55"></i>
              </a>
              <div class="dropdown-menu dropdown-menu-arrow dropdown-menu-right" aria-labelledby="navbar-default_dropdown_1">
                <a class="dropdown-item" href="#">Action</a>
                <a class="dropdown-item" href="#">Another action</a>
                <div class="dropdown-divider"></div>
                <a class="dropdown-item" href="#">Something else here</a>
              </div>
            </li>
            <li class="nav-item dropdown">
              <a class="nav-link" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                <div class="media align-items-center">
                  <span class="avatar avatar-sm rounded-circle">
                    <img alt="Image placeholder" src="./assets/img/theme/team-1-800x800.jpg
    ">
                  </span>
                </div>
              </a>
              <div class="dropdown-menu dropdown-menu-arrow dropdown-menu-right">
                <div class=" dropdown-header noti-title">
                  <h6 class="text-overflow m-0">Welcome!</h6>
                </div>
                <div class="dropdown-divider"></div>
                <a href="#!" class="dropdown-item">
                  <i class="ni ni-user-run"></i>
                  <span>Logout</span>
                </a>
              </div>
            </li>
          </ul>
          <!-- Collapse -->
          <div class="collapse navbar-collapse" id="sidenav-collapse-main">
            <!-- Collapse header -->
            <div class="navbar-collapse-header d-md-none">
              <div class="row">
                <div class="col-6 collapse-brand">
                  <a href="./index.html">
                    <img src="./assets/img/brand/blue.png">
                  </a>
                </div>
                <div class="col-6 collapse-close">
                  <button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#sidenav-collapse-main" aria-controls="sidenav-main" aria-expanded="false" aria-label="Toggle sidenav">
                    <span></span>
                    <span></span>
                  </button>
                </div>
              </div>
            </div>
            <!-- Form -->
            <form class="mt-4 mb-3 d-md-none">
              <div class="input-group input-group-rounded input-group-merge">
                <input type="search" class="form-control form-control-rounded form-control-prepended" placeholder="Search" aria-label="Search">
                <div class="input-group-prepend">
                  <div class="input-group-text">
                    <span class="fa fa-search"></span>
                  </div>
                </div>
              </div>
            </form>
            <!-- Navigation -->
            <ul class="navbar-nav">
              <li class="nav-item  class=" active" ">
              <a class=" nav-link active " href=" index.php"> <i class="ni ni-tv-2 text-primary"></i> Dashboard
                </a>
              </li>
             <li class="nav-item">
                <a class="nav-link " href="#">
                  <i class="ni ni-satisfied text-orange"></i> Usuarios
                </a>
              </li>
        <li class="nav-item" style="margin-left: 10px">
                <a class="nav-link " href="tipoUsuario.php">
                 Cadastrar Tipo Usuario
                </a>
              </li>
        <li class="nav-item" style="margin-left: 10px">
                <a class="nav-link " href="usuario_hpac.php">
                 Cadastrar Usuario
                </a>
              </li>
        
        
              <li class="nav-item">
                <a class="nav-link " href="#">
                  <i class="ni ni-shop text-blue"></i> Empresas
                </a>
              </li>
        <li class="nav-item" style="margin-left: 10px">
                <a class="nav-link " href="ramoAtividade.php">
                 Cadastrar Ramo de Atividade 
                </a>
              </li>
        <li class="nav-item" style="margin-left: 10px">
                <a class="nav-link " href="formularioPJ.php">
                 Cadastrar Empresa 
                </a>
              </li>
    
              <li class="nav-item">
                <a class="nav-link " href="#">
                  <i class="ni ni-single-02 text-yellow"></i> Cliente
                </a>
              </li>
        <li class="nav-item" style="margin-left: 10px">
                <a class="nav-link " href="formularioCliente.php">
                 Cadastrar Cliente 
                </a>
              </li>      
              <li class="nav-item">
                <a class="nav-link " href="#">
                  <i class="ni ni-bullet-list-67 text-red"></i> Listar Tabelas
                </a>
              </li>
              <li class="nav-item" style="margin-left: 10px">
                <a class="nav-link " href="listarPJ.php">
                 Listar Empresas 
                </a>
              </li>
              
              <li class="nav-item">
                <a class="nav-link" href="./examples/login.html">
                  <i class="ni ni-key-25 text-info"></i> Login
                </a>
              </li>
              <li class="nav-item">
                <a class="nav-link" href="./examples/register.html">
                  <i class="ni ni-circle-08 text-pink"></i> Register
                </a>
              </li>
            </ul>
            <!-- Divider -->
            <!-- Heading -->
            <!-- Navigation -->
            </div>
        </div>
      </nav>
      <div class="main-content">
        <!-- Navbar -->
        <nav class="navbar navbar-top navbar-expand-md navbar-dark" id="navbar-main">
          <div class="container-fluid">
            <!-- Brand -->
            <a class="h4 mb-0 text-white text-uppercase d-none d-lg-inline-block" href="./index.html">Dashboard</a>
            <!-- Form -->
            <!-- User -->
            <ul class="navbar-nav align-items-center d-none d-md-flex">
              <li class="nav-item dropdown">
                <a class="nav-link pr-0" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                  <div class="media align-items-center">
                    <span class="avatar avatar-sm rounded-circle">
                      <img alt="Image placeholder" src="./assets/img/theme/team-4-800x800.jpg">
                    </span>
                    <div class="media-body ml-2 d-none d-lg-block">
                      <span class="mb-0 text-sm  font-weight-bold"><?php echo $logado ?></span>
                    </div>
                    <div class="media-body ml-2 d-none d-lg-block">
                      <span class="mb-0 text-sm  font-weight-bold"><?php echo $nivel ?></span>
                    </div>
                  </div>
                </a>
                <div class="dropdown-menu dropdown-menu-arrow dropdown-menu-right">
                  <div class=" dropdown-header noti-title">
                    <h6 class="text-overflow m-0">Bem-vindo</h6>
                  </div>
                  <div class="dropdown-divider"></div>
                  <a href="logout.php" class="dropdown-item">
                    <i class="ni ni-user-run"></i>
                    <span>Logout</span>
                  </a>
                </div>
              </li>
            </ul>
          </div>
        </nav>
        <!-- End Navbar -->
    <!-- Header -->
        <div class="header bg-gradient-primary pb-8 pt-5 pt-md-8">
          <div class="container-fluid">
            <div class="header-body">
              <!-- Card stats -->
              
              <div class="row">
                <!-- inicio primeiro quadrado -->
                
                <div class="col-xl-3 col-lg-6">
                  <div class="card card-stats mb-4 mb-xl-0">
                    <div class="card-body">
                      <div class="row">
                        <div class="col">
                          <h5 class="card-title text-uppercase text-muted mb-0">Empresas</h5>
                <?php
                    include 'conexao/conexao.php';
                    $sql = "SELECT COUNT(id_empresa) as quantidade FROM empresa";
                    $busca = mysqli_query($conexao, $sql);
                    $dados = mysqli_fetch_array($busca);
                    $quantidade = $dados['quantidade'];
                ?>
                          <span class="h2 font-weight-bold mb-0"><?php echo $quantidade ?></span>
                        </div>
                        <div class="col-auto">
                          <div class="icon icon-shape bg-danger text-white rounded-circle shadow">
                            <i class="fas fa-chart-bar"></i>
                          </div>
                        </div>
                      </div>
                      <p class="mt-3 mb-0 text-muted text-sm">
                         <span class="text-nowrap"></span>
                      </p>
                    </div>
                  </div>
                </div>
              <!-- fim primeiro quadrado -->
              <!-- inicio segundo quadrado -->
                
                <div class="col-xl-3 col-lg-6">
                  <div class="card card-stats mb-4 mb-xl-0">
                    <div class="card-body">
                      <div class="row">
                        <div class="col">
                          <h5 class="card-title text-uppercase text-muted mb-0">Usuarios</h5>
                <?php
                    include 'conexao/conexao.php';
                    $sql = "SELECT COUNT(id_usuario) as quantidade FROM usuario_hpac";
                    $busca = mysqli_query($conexao, $sql);
                    $dados = mysqli_fetch_array($busca);
                    $quantidade = $dados['quantidade'];
                ?>
                          <span class="h2 font-weight-bold mb-0"><?php echo $quantidade ?></span>
                        </div>
                        <div class="col-auto">
                          <div class="icon icon-shape bg-danger text-white rounded-circle shadow">
                            <i class="fas fa-chart-pie"></i>
                          </div>
                        </div>
                      </div>
                      <p class="mt-3 mb-0 text-muted text-sm">
                         <span class="text-nowrap"></span>
                      </p>
                    </div>
                  </div>
                </div>
              <!-- fim segundo quadrado -->
                
                <div class="col-xl-3 col-lg-6">
                  <div class="card card-stats mb-4 mb-xl-0">
                    <div class="card-body">
                      <div class="row">
                        <div class="col">
                          <h5 class="card-title text-uppercase text-muted mb-0">Alugados</h5>
                                 <?php
                    include 'conexao/conexao.php';
                    $sql = "SELECT COUNT(id_status_imovel) as quantidade FROM status_imovel WHERE status_imovel = 'Aluguel'";
                    $busca = mysqli_query($conexao, $sql);
                    $dados = mysqli_fetch_array($busca);
                    $qtdaluguel = $dados['quantidade'];
    
                ?>
         
                
                    <span class="h2 font-weight-bold mb-0"><?php echo $qtdaluguel ?></span>
                        </div>
                        <div class="col-auto">
                          <div class="icon icon-shape bg-yellow text-white rounded-circle shadow">
                            <i class="fas fa-users"></i>
                          </div>
                        </div>
                      </div>
                      <p class="mt-3 mb-0 text-muted text-sm">
                           <?php
                    $sql3 = "SELECT SUM(valor_negocio)as valortotal FROM status_imovel WHERE status_imovel = 'Aluguel'";
                    $query = mysqli_query($conexao, $sql3);
                    $dados3 = mysqli_fetch_array($query);
                    $totalAluguel = $dados3['valortotal'];
                    $totalAluguel;
                    $porcento = $totalAluguel * 0.10;
                ?> 
                <span class="text-success mr-2"><i class="fas fa-arrow-up"></i><?php echo number_format($porcento, 2, ',', '.') ?></span>
                        <span class="text-nowrap">Lucro Alugueis</span>
                      </p>
                    </div>
                  </div>
                </div>
                <div class="col-xl-3 col-lg-6">
                  <div class="card card-stats mb-4 mb-xl-0">
                    <div class="card-body">
                      <div class="row">
                        <div class="col">
                          <h5 class="card-title text-uppercase text-muted mb-0">Lucro Bruto</h5>
                <?php
                    $totalbruto = $porcento + $total;
                    
                ?>
                    <span class="h2 font-weight-bold mb-0"><?php echo number_format($totalbruto, 2, ',', '.') ?></span>
                        </div>
                        <div class="col-auto">
                          <div class="icon icon-shape bg-info text-white rounded-circle shadow">
                            <i class="fas fa-percent"></i>
                          </div>
                        </div>
                      </div>
                      <p class="mt-3 mb-0 text-muted text-sm">
                <?php
                if($totalbruto > 0) {?>
                            <span class="text-success mr-2"><i class="fas fa-arrow-up"></i>Saldo Positivo</span>
                <?php } else {?>
                        <span class="text-danger mr-2"><i class="fas fa-arrow-down"></i>Saldo Negativo</span>
                <?php    }?>
    
                      </p>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
    
    </body>
    </html>

    Diante disso, quero que alguém poste aqui uma sugestão contemplando os dois códigos, pois acredito que na primeira verificação usando AND ou WHERE eu estou acertando, mas o grande problema está na abertura da próxima página, que não estou conseguindo fazer. Acho que até checo a tabela, mas não estou conseguindo direcionar para a página certa.

     

  2. Tenho um sistema em PHP com mysql, onde vinha salvando algumas informações no banco, através de option button, de modo que tudo vinha dando certo, pois eram salvos apenas uma opção (sim/não, ou uma lista, onde só uma opção era salva). Depois de algum tempo usando o sistema, surgiu a necessidade de também usar chekbox, com a possibilidade de marcar mais de uma opção, e tá salvando tudo certinho. O problema agora, é que não estou sabendo como contar os registros. Quando tem apenas um registro no campo, estou  usando a seguinte linha, para contar os registros:

    $sql_count12 = "SELECT COUNT(tipoAlergia) AS total12 FROM aluno WHERE zona = 'Urbana' AND tipoAlergia = 'Embutidos' ORDER BY id_aluno ASC";

    Da forma como vinha funcionando, listava o total de alergias, sempre eu eu chamava o total12, tudo certinho, pois só era possível salvar uma (option button). Agora, essa seleção passou a ser feita por checkbox, e estou meio perdido em como fazer essa contagem, pois tem uma lista de alergias relativamente grande, e as pessoas podem selecionar várias opções pro mesmo aluno. Gostaria de saber como, usando esse mesmo código, contar as alergias inclusive quando marcarem mais de uma opção, que nem sempre vai ocorrer.

     

  3. Você está corretíssimo Leonardo. Realmente esse meu código ignora as boas práticas de programação. Fui construindo de acordo com a necessidade, e isso deixo o código muito ruim. Quando tiver um tempo, vou tentar reescrever assim. Por ora, estou quebrando a linha no insert e values, sempre após a vírgula, e tá dando certo.

  4. Tenho um sistema em php que grava os dados da seguinte forma: Existe um formulário em html, que captura os dados, e um arquivo de inserção em php que recebe os dados do formulário, e grava no banco. Tudo isso está funcional, e vai sendo ampliado, de acordo com a necessidade, então vou tentar ilustrar o código aqui:

    $numero1 = $_POST['numero1'];
    .
    .
    .
    $numero100 = $POST['numero100']; 


    Esses dados vem do formulário, e até esse número 100, está funcional. Após receber esses números, é preparado um SQL para inserção no banco, que fica mais ou menos assim:

    $sql = "insert into tabela(numero1, ...,numero100) values ('$numero1', ..., 'numero100')";
    $con->exec($sql); 


    Tudo isso está funcionando, e deu tudo certo, até aproximadamente o registro 100 (não sei o número exato) pois é uma necessidade do sistema que ele seja assim, e as variáveis sejam criadas, quando a ocasião se apresenta.
    Ocorre, que de uns dias pra cá, não consigo mais criar nenhuma variável, e o sistema travou. Depois de muitos testes, descobri que essa linha de inserção no $sql, fica como uma linha inteira e única, e é exatamente essa a limitação, que é 3.000 caracteres, espaços ou colunas, aparentemente. O travamento decorre disso. Tudo que for feito à partir da linha 3.000, é simplesmente ignorado, e gera um erro no sistema.
    Normalmente escrevo o código diretamente do terminal linux, usando o comando vim, salvo e já testo no navegador, e a minha dúvida é se essa limitação é do comando vim, do mysql, ou do PHP, e como fazer para contornar isso?
    Uso Linux Ubuntu 16.04 LTS, PHP 7 e mysql com phpmyadmin. Uma outra particularidade, é que para ser mais produtivo, escrevo o código diretamente no servidor em produção, via terminal com o comando vim.
    Gostaria apenas de uma forma de quebrar essa linha, de modo que essa inserção continue sendo feita da mesma maneira.

  5. Tenho um servidor linux instalado em casa, com ubuntu 16.04, apache 2 e php 7.0; e uso ele apenas para testar sites. Faço todo o código no servidor (pastas e páginas), e depois, para testar, acesso de outro pc, pelo navegador, e ip do servidor (http://192.168.0.20/pasta_do_site) e dá tudo certo quando uso html, css, e até java, porém, quando uso php, sempre aparece um erro 500 e nada funciona. Já aconteceu até de eu pegar a pasta inteira com problema, subir numa hospedagem, e tudo funcionar normalmente, então o problema com o código está descartado. É alguma configuração do servidor. Sei que pode estar faltando alguma coisa, mas já fiz vários testes (htaccess, sites-availables, etc), e nada deu retorno até agora. Alguém tem uma dica do que pode estar ocorrendo?

  6. Tenho uma rotina em php que está funcionando, gravando os dados numa tabela. Agora surgiu a necessidade de fazer dois testes antes da gravação, e eu não estou conseguindo ter idéia de como fazer, por isso vou postar no próprio código pra ver se entendem. O primeiro teste, é ver se o número escolhido, já foi selecionado (variável numero), e caso isso ocorra, não gravar. O outro teste é impedir que o mesmo usuário (usuário apostador)faça mais de uma aposta. Segue código:

    <?php
    require_once 'init.php';
    // pega os dados do formuário
    $data_hora = isset($_POST['data_hora']) ? $_POST['data_hora'] : null;
    $apostador = isset($_POST['apostador']) ? $_POST['apostador'] : null; // quero que esse apostador não se repita. Se já estiver na tabela, avisar e sair.
    $telefone = isset($_POST['telefone']) ? $_POST['telefone'] : null;
    $numero = isset($_POST['numero']) ? $_POST['numero'] : null; // quero que cheque esse número na tabela existente, e caso exista, retornar para inserir outro.
     
     
    // validação (bem simples, só pra evitar dados vazios)
    if (empty($data_hora) || empty($apostador) || empty($telefone) || empty($numero))
    {
        echo "Volte e preencha todos os campos";
        exit;
    }
    $hoje = date("d-m-Y H:i");
    $limite = ('08-03-2019 16:35');
       if (strtotime($hoje) >= strtotime($limite)){
            echo "Esgotado o horario limite. Aguarde para o próximo sorteio!";
            exit;
        }
    
    // a data vem no formato dd/mm/YYYY
    // então precisamos converter para YYYY-mm-dd
    
    // insere no banco
    $PDO = db_connect();
    
    // Acredito que esse teste deva ser feito aqui, antes de gravar, mas é só um palpite, pois estou mais perdido do que padre (alguns) em boate
    
    //verificar se apostador e numero já existem na tabela, e caso exista, retornar o fluxo
    
    
    
    $sql = "INSERT INTO palpites(data_hora, apostador, telefone, numero) VALUES(:data_hora, :apostador, :telefone, :numero)";
    $stmt = $PDO->prepare($sql);
    $stmt->bindParam(':data_hora', $data_hora);
    $stmt->bindParam(':apostador', $apostador);
    $stmt->bindParam(':telefone', $telefone);
    $stmt->bindParam(':numero', $numero);
     
     
    if ($stmt->execute())
    {
        header('Location: index.php');
    }
    else
    {
        echo "Erro ao cadastrar";
        print_r($stmt->errorInfo());
  7. Olá, bom dia a todos. Estou criando um sisteminha simples para geração de um documento em pdf. Para isso, estou juntando partes de vários projetos em  um só, e o meu problema no momento é bem simples. O sistema tá funcionando, porém gera o pdf na mesma janela, sobre a tela de cadastramento, e eu gostaria que abrisse numa nova aba ou janela, pra que  a tela de cadastramento permanecesse sempre ativa. Atualmente está assim:

    O arquivo que grava os registros termina com a instrução 

    header('Location: tela_cadastramento.php');

    Isso é uma rotina pronta, que faz com que ao cadastrar um registro, já volte nesse tela, com os inputs limpos, aguardando novos registros. Fiz essa rotina primeiro, e tá funcional. Depois disso, peguei uma rotina pronta para gerar o PDF com fpdf, e criei uma function com essa rotina, que termina com: 

    $pdf->Output();

    e até aí, tá tudo normal, pois é exatamente isso que quero, apenas abrir o pdf na tela, e o usuário decide o que vai fazer. Salvar, imprimir, ou os dois. Está funcionando, pois abre o pdf, tudo certinho. O único problema é que abre a janela do pdf "sobre" a janela ativa do sistema, e com isso gera um warning pois impede que a instrução do header seja cumprida. Já tentei mudar o local da chamada da função do fpdf, mas não resolveu, então gostaria de passar uma instrução para abrir o fpdf em outra aba ou janela, mas não sei como devo fazer, uma vez que na ordem do sistema, é feita uma gravação no banco, e a geração do pdf é feita de forma automática, pegando carona nessa gravação. Estou falando isso, pois se fosse uma botão específico gerar pdf, sei que teria como fazer usando target, ou onclick. Quero fazer algo equivalente, dentro da função, ou do comando de output. Será que me fiz entender, e alguém pode me ajudar?

  8. 2 horas atrás, lowys disse:

    Olá!
    isso acontece quando um ou os dois valores são do tipo string.
    Tente usar a função number quando for somar, assim:

    
    Number(valorAbastecimento) + Number(totalValor)
    
    pra ver o q acontece
    se forem sempre inteiros, você pode tentar também com parseInt()
    se não, com  parseFloat() 
    

    Isso lowis, obrigado pela ajuda. Resolvi com o parseInt.

    var valorAbastecimento = parseInt( document.getElementById("valorAbastecimento").value, 10 );
    var totalValor = parseInt( document.getElementById("totalValor").value, 10 );
  9. Tenho um input text no meu form, que recebe um valor do banco de dados. Isso já está funcionando perfeitamente. Criei uma função para somar o valor de um outro campo, com esse que trás da tabela, e está apenas concatenando. O que posso estar errando? Se como exemplo, eu trago do banco o valor 50, e depois digito 50 nesse outro campo que faz a soma, ela passa a mostrar 5050, acrescentando sempre o último valor digitado à esquerda do valor que veio da tabela, quando o normal seria exibir o resultado da soma. Vejam a função que deveria somar:

    function onSomaTotal(){
                    var valorAbastecimento = document.getElementById("valorAbastecimento").value;
                    var totalValor = document.getElementById("totalValor").value;
                    document.getElementById("totalValor").value = (valorAbastecimento + totalValor);
                    
                }

     

  10. 9 horas atrás, Jefferson Pires Fiorotto disse:

    Olá, só não entendi o "While" para pegar o KM Anterior...mas segue exemplo para calcular via JavaScript..

    espero ter ajudado!

    Abraço!!

    
    <input type="text" id="kmAnterior"  name = "kmAnterior"   placeholder = "KM Anterior" value="<?php echo $linha['kmAbastecimento']; ?>">
    <input type="text" id="kmAtual"     name = "kmAtual"      placeholder = "KM Atual"    onchange="onCalculaKM()">
    <input type="text" id="kmCalculado" name = "kmCalculado"  placeholder = "KM Calculado">
    <script>
    function onCalculaKM() {
        var kmAnterior = document.getElementById("kmAnterior");
        var kmAtual = document.getElementById("kmAtual");
        document.getElementById("kmCalculado").value = (kmAtual - kmAnterior);
    }
    </script>

     

    Tá aparecendo NaN no resultado. Onde posso ter errado? Aparentemente tá funcionando, mas não dá o valor esperado.

  11. O while na verdade tá fazendo uma outra coisa, que é listar todos os campos numa tabela. Só mencionei ele, pra ver se já dava pra aproveitar essa mesma "leitura" da tabela. Queria buscar esse kmAnterior diretamente da tabela, e não estou conseguindo.

  12. Tenho um tabela que guarda os abastecimentos de um veículo e gostaria de fazer o seguinte código funcionar. Preciso pegar o último registro com a quilometragem do odômetro e já trazer pro input text específico, chamado kmAnterior. Tem que ser o último campo, pra eu descobrir o caminho percorrido. Exemplo: kmAnterior 115,  kmAtual 215. Cálculo (kmAtual - kmAnterior) = 100 km. Então o atual eu vou digitar, e gostaria que o anterior buscasse automaticamente na tabela (último registro gravado). Estou fazendo de uma forma que não está funcionando:

    <input type="text" name = "kmAnterior" placeholder = "KM Anterior" value = "<?php echo $linha['kmAbastecimento']; ?>">

    Onde esse $linha é a forma que estou usando pra preencher uma tabela (usando while). Quero conseguir pegar sempre o último valor da tabela e lançar diretamente nesse campo, de uma forma mais limpa e simples possível, pois a tabela tem uma série de outros cálculos.

  13. Gostaria que alguém me ajudasse a encontrar erro num código. Estou fazendo um curso na net, e tentando adaptar o código que funciona para ir aprimorando a aprendizagem. Então vou colocar dois códigos aqui, onde um funciona o outro não. O que funciona é o do curso com mais campos. O que fiz foi apenas adaptar esse código que funciona para uma quantidade bem menor, e ver se funciona. Os dois códigos abre o formulário, aparentemente consultam o banco com sucesso, porém só o original está alterando, certamente por algum erro meu. Mas já olhei trocentas vezes, postei dúvida lá no curso, e o cara não responde, então estou parado na aprendizagem por conta disso. Basicamente é um formulário de cadastro de transportadoras onde o usuário altera os dados de uma transportadora através desse formulário. Esse tá funcionando tudo certinho. Tentei reproduzir esse mesmo formulário, porém apenas com dois campos (cidade e estado), e mesmo assim não funciona. Lista certinho, mas não altera, por isso acho que é um erro simples. Segue os dois códigos pra que comparem:

    CÓDIGO QUE FUNCIONA:

    <?php require_once("conexao/conexao.php"); ?>
    <?php
        if (isset($_POST["nometransportadora"])){
            $nome = utf8_decode($_POST["nometransportadora"]);
            $endereco = utf8_decode($_POST["endereco"]);
            $cidade = utf8_decode($_POST["cidade"]);
            $estado = $_POST["estados"];
            $cep = $_POST["cep"];
            $cnpj = $_POST["cnpj"];
            $telefone = $_POST["telefone"];
            $tID = $_POST["transportadoraID"];
            // CRIAR O OBJETO PARA ALTERAR
            $alterar = "UPDATE transportadoras ";
            $alterar .= "SET ";
            $alterar .= "nometransportadora = '{$nome}', ";
            $alterar .= "endereco = '{$endereco}', ";
            $alterar .= "cidade = '{$cidade}', ";
            $alterar .= "estadoID = {$estado}, ";
            $alterar .= "cep = '{$cep}', ";
            $alterar .= "cnpj = '{$cnpj}', ";
            $alterar .= "telefone = '{$telefone}' ";
            $alterar .= "WHERE transportadoraID = {$tID}";
            $operacao_alterar = mysqli_query($conecta, $alterar);
            if (!$operacao_alterar){
                die("Erro na alteração!");
            }else {
                header("location: listagem2.php");
            }
        }
    
    
        // Consulta a tabela de transportadoras.
        $tr = "SELECT * ";
        $tr .= "FROM transportadoras ";
        if (isset($_GET["codigo"])){
            $id = $_GET["codigo"];
            $tr .= "WHERE transportadoraID = {$id} ";
        }else {
            $tr .= "WHERE transportadoraID = 1 ";
        }
        $con_transportadora = mysqli_query($conecta, $tr);
        if (!$con_transportadora){
            die("Erro na consulta");
        }
        $info_transportadora = mysqli_fetch_assoc($con_transportadora);
        
        // Consulta aos estados
        $estados = "SELECT * ";
        $estados .= "FROM estados ";
        $lista_estados = mysqli_query($conecta, $estados);
        if (!$lista_estados){
            die("erro no banco");
        }
    
    ?>
    <!doctype html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Curso PHP INTEGRACAO</title>
            
            <!-- estilo -->
            <link href="_css/estilo.css" rel="stylesheet">
            <link href="_css/alteracao.css" rel="stylesheet">
        </head>
    
        <body>
            <?php include_once("_incluir/topo.php"); ?>
            
            <main>  
                <div id="janela_formulario">
                    <form action="alteracao.php" method = "post">
                        <h2>Alteração de Transportadoras</h2>
                        <label for="nometransportadora">Nome da Transportadora</label>
                        <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["nometransportadora"]) ?>" name = "nometransportadora" id = "nometransportadora">
                        <label for="endereco">Endereço</label>
                        <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["endereco"]) ?>" name = "endereco" id = "endereco">
                        <label for="cidade">Cidade</label>
                        <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["cidade"]) ?>" name = "cidade" id = "cidade">
                        <label for="estados">Estados</label>
                        <select id = "estados" name = "estados">
                            <?php 
                                $meuestado = $info_transportadora["estadoID"];
                                while ($linha = mysqli_fetch_assoc($lista_estados)){
                                $estado_principal = $linha["estadoID"];
                                if ($meuestado == $estado_principal){
                            ?>
                                <option value="<?php echo $linha["estadoID"] ?>" selected>
                                    <?php echo utf8_encode($linha ["nome"]) ?>
                                </option>
                                <?php
                                } else { 
                                ?>
                                    <option value="<?php echo $linha["estadoID"] ?>">
                                    <?php echo utf8_encode($linha ["nome"]) ?>
                                    </option>
                            <?php 
                                }
                                }
                            ?>
                            
                        </select>
                        <label for="cep">CEP</label>
                        <input type = "text" value = "<?php echo ( $info_transportadora["cep"]) ?>" name = "cep" id = "cep">
                        <label for="telefone">Telefone</label>
                        <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["telefone"]) ?>" name = "telefone" id = "telefone">
                        <label for="cnpj">CNPJ</label>
                        <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["cnpj"]) ?>" name = "cnpj" id = "cnpj">
                        <input type = "hidden" name = "transportadoraID" value = "<?php echo $info_transportadora["transportadoraID"] ?>">
                        <input type = "submit" value="Confirmar Alteração">
                    </form>
                </div>
            </main>
    
            <?php include_once("_incluir/rodape.php"); ?>  
        </body>
    </html>

     

    CÓDIGO QUE NÃO FUNCIONA. (Lista tudo certinho, mas não altera, nem traz o estádo pré-checado).

    <?php require_once("conexao/conexao.php"); ?>
    <?php
        if( isset($_POST["nomeCidade"]) ) {
            $nomeCidade       = utf8_decode($_POST["nomeCidade"]);
            $estado     = $_POST["estados"];
            $cID        = $_POST["cidadeID"];
            
            // Objeto para alterar
            $alterar = "UPDATE cidades ";
            $alterar .= "SET ";
            $alterar .= "nomeCidade = '{$nomeCidade}', ";
            $alterar .= "estadoID = {$estado} ";
            $alterar .= "WHERE cidadeID = {$cID} ";
            $operacao_alterar = mysqli_query($conecta, $alterar);
            if(!$operacao_alterar) {
                die("Erro na alteracao");   
            } else {
                header("location:alterarCidades.php");   
            }
            
        }
    
        // Consulta a tabela de cidades
        $tr = "SELECT * ";
        $tr .= "FROM cidades ";
        if(isset($_GET["codigo"]) ) {
            $id = $_GET["codigo"];
            $tr .= "WHERE cidadeID = {$id} ";
        } else {
            $tr .= "WHERE cidadeID = 1 ";
        }
        
        $con_cidade = mysqli_query($conecta,$tr);
        if(!$con_cidade) {
            die("Erro na consulta");
        }
    
        $info_cidade = mysqli_fetch_assoc($con_cidade);
        
    
        // consulta aos estados
        $estados = "SELECT * ";
        $estados .= "FROM estados ";
        $lista_estados = mysqli_query($conecta, $estados);
        if(!$lista_estados) {
           die("erro no banco"); 
        }
       
    
    ?>
    <!doctype html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Alteração Cidades</title>
            <!-- estilo -->
            <link href="_css/estilo.css" rel="stylesheet">
            <link href="_css/alteracao.css" rel="stylesheet">
    
        </head>
    
        <body>
            <?php include_once("_incluir/topo.php"); ?>
            
    
            <main>
                <div id="janela_formulario">
                    <form action="alteracaoCidades.php" method="post">
                        <h2>Alteração de Cidades</h2>
                        
                        <label for="nomeCidade">Nome da Cidade</label>
                        <input type="text" value="<?php echo utf8_encode($info_cidade["nomeCidade"])  ?>" name="nomeCidade" id="nomeCidade">
                        <label for="estados">Estados</label>
                        <select id="estados" name="estados"> 
                            <?php 
                                $meuestado = $info_cidade["estadoID"];
                                while($linha = mysqli_fetch_assoc($lista_estados)) {
                                    $estado_principal = $linha["estadoID"];
                                    if($meuestado == $estado_principal) {
                            ?>
                                <option value="<?php echo $linha["estadoID"] ?>" selected>
                                    <?php echo utf8_encode($linha["nome"]) ?>
                                </option>
                            <?php
                                    } else {
                            ?>
                                <option value="<?php echo $linha["estadoID"] ?>" >
                                    <?php echo utf8_encode($linha["nome"]) ?>
                                </option>                        
                            <?php 
                                    }
                                }
                            ?>
                        </select>
                        <input type="hidden" name="cidadeID" value="<?php echo $info_cidade["cidadeID"] ?>">
                        <input type="submit" value="Confirmar alteração">                    
                    </form>   
                </div>
            </main>
    
            <?php include_once("_incluir/rodape.php"); ?>
        </body>
    </html>
  14. Não estou conseguindo fazer funcionar no meu código luis. Dei uma pesquisada, e consegui uma função que faz isso após X tempo, e essa tá funcionando. Será que tem como, ao invés do tempo, eu usar o click num botão, por exemplo? Dê uma olhada no código abaixo:

    <script type="text/javascript">
            setTimeout(function() {
                $('#teste').fadeOut('fast'); }, 10000); 
    </script>

    Nessa função, após 10 segundos, tudo que estiver dentro da div, desaparece. Será que teria como eu substituir o tempo por um click num botão, e ao invés de desaparecer, aparecer?

     

  15. Estou trabalhando num formulário de cadastro onde aparece o número da certidão de nascimento. Como já devem saber, existe o antigo formato de certidões, com nome do cartório, termo, livro e folha (4 campos), e um formato novo de campo único, com 32 dígitos, onde estão implícitas todas essas informações. Coloquei no meu formulário apenas um campo de texto para colocar esses 32 dígitos da nova certidão, e apenas um checkbox chamado certidão antiga, que quando clicado (checado) irá fazer aparecer os quatro campos para preenchimento com os dados das certidões antigas. Pensei em colocar hidden no campo, e através de um if, mudar para text quando checado. Mesmo pra essa idéia simples, não consigo achar a sintaxe. Alguém tem uma solução pra esse problema?

  16. Então, montei de várias formas e sempre dava um erro. Como só queria registrar data e horário que houvesse alteração, resolvi criando um campo do tipo timestamp, not null e com default current_timestamp. Então dessa forma, o próprio mysql se encarrega de acrescentar essa informação. Estarei criando umas novas tabelas, e nesse caso já com esse item criado na query, mas não tenho nada pronto ainda. Por ora vou resolvendo assim.

  17. Tenho um projeto, já funcionando, com vários bancos de dados e várias tabelas. No momento, surgiu a necessidade de registar data e hora da gravação de dados em algumas tabelas. Só preciso que fique registrado na tabela a data e hora das gravações. Fui em cada uma delas e criei um campo do tipo datetime e estou tentando inserir um NOW() na gravação, mas não estou acertando com a sintaxe. Alguém tem uma sugestão? Basta registrar a data e hora na tabela, sem a necessidade de acrescentar textbox no formulário. Exemplo, eu tenho um formulário onde se registra os turnos (manhã, tarde e noite). Tenho apenas um textbox no formulário chamado turno, e um código que guarda esse valor (varchar) numa tabela chamada junho, que só tinha originalmente um campo chamado turno, funcionando. Criei mais um campo chamado cadastramento, do tipo datetime, pra guardar data e hora da gravação desse novo turno, e não estou acertando com a sintaxe. 

  18. Estou seguindo uma video aula de php com mysql e estou conseguindo listar os dados de uma tabela em uma lista (list), só pra que saibam que o problema de conexão com o banco já está superado. Tentei aproveitar o mesmo código para listar a mesma tabela numa combobox, e não tá preenchendo. Aparece a combo, mas não preenche com os dados. Alguém sabe onde estou errando? Segue código:

    <body>
            <ul>
                <?php
                    // Passo 4 - Listagem dos dados
                    while($registro = mysqli_fetch_assoc($categorias)){
                ?>
                        <li><?php echo $registro ["nomecategoria"]?></li>
                <?php
                    }
                
                ?>
            </ul>
            <form name="produto" method="post" action="">
                 <label for="">Selecione um produto</label>
                 <select>
                 <option>Selecione...</option>
                 
                 <?php 
                 while($registro = mysqli_fetch_assoc($categorias)) { ?>
                 <option = "<?php echo $registro['categoriaID'] ?>"><?php echo $registro["nomecategoria"] ?></option>
                 <?php } ?>
                 
                 </select>
            </form>
                        <?php
                //Passo 5 - Liberar dados da memória
                mysqli_free_result($categorias);
            ?>
        </body>
  19. Tenho um sistema de Login, que já funciona em outro site e estou tentando transferir pra outro, e não funciona de jeito nenhum. Gostaria que alguém desse uma olhada. Se digito um usuário errado, retorna um erro de usuário inválido, então está checando o banco. Quando insiro um usuário certo, aparece as seguintes mensagens de erro:

    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/netosale/public_html/e-educacao/validacao.php:2) in /home/netosale/public_html/e-educacao/validacao.php on line 28

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/netosale/public_html/e-educacao/validacao.php:2) in /home/netosale/public_html/e-educacao/validacao.php on line 28

    Warning: Cannot modify header information - headers already sent by (output started at /home/netosale/public_html/e-educacao/validacao.php:2) in /home/netosale/public_html/e-educacao/validacao.php on line 36

    Vou lá nessas duas linhas, e não consigo localizar absolutamente nada de anormal. O que pode estar acontecendo. Já baixei diversos outros sistemas de login, e todos dão erro. Será que é algum problema bom o bootstrap ou coisa parecida? Segue código pra que dêem uma olhada:

    <?php
         // Verifica se houve POST e se o usuсrio ou a senha щ(sуo) vazio(s)
      if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {
          header("Location: index.php"); exit;
      }
      // Tenta se conectar ao servidor MySQL
      mysql_connect('localhost', 'xzthyb45', '164544515151561') or trigger_error(mysql_error());
      // Tenta se conectar a um banco de dados MySQL
      mysql_select_db('ljklfdfjkldj') or trigger_error(mysql_error());
       
      $usuario = mysql_real_escape_string($_POST['usuario']);
      $senha = mysql_real_escape_string($_POST['senha']); 
      // Validaчуo do usuсrio/senha digitados
      $sql = "SELECT `id`, `nome`, `nivel` FROM `userPerms` WHERE (`usuario` = '".$usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1";
      $query = mysql_query($sql);
      if (mysql_num_rows($query) != 1) {
          // Mensagem de erro quando os dados sуo invсlidos e/ou o usuсrio nуo foi encontrado
          echo "Login invсlido!"; exit;
      } else {
         //  Salva os dados encontados na variсvel $resultado
         $resultado = mysql_fetch_assoc($query);
      }
      
       
          // Se a sessуo nуo existir, inicia uma
          if (!isset($_SESSION)) session_start();
       
           //Salva os dados encontrados na sessуo
          $_SESSION['UsuarioID'] = $resultado['id'];
          $_SESSION['UsuarioNome'] = $resultado['nome'];
          $_SESSION['UsuarioNivel'] = $resultado['nivel'];
       
           // Redireciona o visitante
          header("Location: novaTela.php"); 
          exit;
      
    
    ?>
  20. Era exatamente isso Diogo, mas eu tava me perdendo a sintaxe das coisas. Até um separador do dia, mês e ano faz diferença. Devo ter acertado no código várias vezes, porém não tava observando esse detalhe, pois esse código é processado internamente, sem print na tela. Comentei com um amigo, e ele disse pra eu dar print após cada comando, e bingo... vi o erro na hora. Segue código pra ajudar algum desesperado como eu:

    $hoje = date("d-m-Y H:i");// pega a data do servidor nesse formato específico
    $limite = ('19-10-2017 23:59');//prazo limite para gravação
       if (strtotime($hoje) >= strtotime($limite)){//compara as datas
            echo "Esgotado o horario limite.";// mostra mensagem e sai
    		exit;
        }

     

  21. Tenho uma rotina pronta em PHP que grava um número com dois dígitos digitado num text box no banco de dados, tudo certinho, funcionando conforme código:

    <input type="text" name="numero" id="numero" maxlength = "2">

    Dessa forma, consigo digitar números de 00 a 99 (100 números), e vinha servindo pois na rotina que usava, não importava se mais de uma pessoa escolhesse o mesmo número. Ocorre que esse procedimento mudou, e agora quero que escolham apenas os 100 números disponíveis, de modo que quando um número for escolhido, ele deverá desaparecer ou ficar inabilitado. Pensei em fazer isso desenhando os botões na tela, e já estão prontos, porém não sei como atribuir o valor do botão clicado ao txtbox numero, nem tampouco desabilitar o botão, após ele ser escolhido, inclusive isso tem que ser válido para as próximas operações. Queria fazer esse tipo de atribuição usando o txtbox, pra não ter que mexer no sistema de gravação da tabela, que já tá pronto e funcional, inclusive envolvendo uma série de outras variáveis. Queria uma rotina simples. Ao invés de digitar o valor no textbox, apenas clicar no botão, que o textbox seria preenchido automaticamente. Depois era só clicar no botão gravar, que já tá pronto. Aceito sugestões de uma melhor forma pra fazer isso, desde que não tenha que mexer muito no código.

×
×
  • Criar Novo...