Jump to content
Fórum Script Brasil

netocazuza

Membros
  • Content Count

    55
  • Joined

  • Last visited

Community Reputation

0 Neutro

About netocazuza

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. netocazuza

    LOGIN COM PERMISSÕES

    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. Era exatamente isso que eu estava precisando Leonardo. Obrigado.
  7. 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());
  8. 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?
  9. 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 );
  10. 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); }
  11. Tá aparecendo NaN no resultado. Onde posso ter errado? Aparentemente tá funcionando, mas não dá o valor esperado.
  12. 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.
  13. netocazuza

    preencher input text

    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.
  14. netocazuza

    achar erro no código.

    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>
×
×
  • Create New...