Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Erick Cerqueira

[Validar] Evitar Cadastro de Dados Duplicados

Recommended Posts

Boa noite!

Como faço pra evitar que sejam realizado cadastros com as mesmas informações?

Atualmente meu "processa.php" está desta forma, e queria incluir a função citada acima...

<?php

session_start();
include_once ("conexao.php");

$nome = filter_input($INPUT_POST, 'nome', FILTER_SANITIZE_STRING);
$email = filter_input($INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
$senha = filter_input($INPUT_POST, 'senha', FILTER_SANITIZE_STRING);
$cargo = filter_input($INPUT_POST, 'cargo', FILTER_SANITIZE_STRING);
$setor = filter_input($INPUT_POST, 'setor', FILTER_SANITIZE_STRING);

$result_usuario = "INSERT INTO usuarios (nome, email, senha, cargo, setor, created) VALUES ('$nome', '$email', '$senha', '$cargo', '$setor', NOW())";
$resultado_usuario = mysqli_query($conn, $result_usuario);

if(mysqli_insert_id($conn)){
    $_SESSION['msg'] = "<p style='color:green;'>Usuário cadastrado com sucesso</p>";
    header("Location: cadastrar-usuario.php");
}else{
    $_SESSION['msg'] = "<p style='color:red;'>Usuário não foi cadastrado com sucesso</p>";
    header("Location: cadastrar-usuario.php");
}


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Erick Cerqueira, joia!

Existe varias formas de fazer esse tratamento, mas de uma forma muito simples, basta você definir o campo email como unique no banco de dados, dessa forma, caso o email já esteja cadastrado, não ocorrera um novo cadastro.
 

ALTER TABLE usuarios
ADD UNIQUE (email);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite!

Pessoal, no código que irei mostrar logo abaixo eu não consigo cadastrar nada, ele simplesmente fica dizendo que a "Matricula já existe no sistema" o tempo todo, mesmo não tendo cadastrado nenhuma ainda :(


Alguém poderia me dizer o que esta errado?
 

   <?php
    
    session_start();
    include_once ("conexao.php");
    
    $marca = filter_input($INPUT_POST, 'marca', FILTER_SANITIZE_STRING);
    $modelo = filter_input($INPUT_POST, 'modelo', FILTER_SANITIZE_STRING);
    $sn = filter_input($INPUT_POST, 'sn', FILTER_SANITIZE_STRING);
    $imei = filter_input($INPUT_POST, 'imei', FILTER_SANITIZE_STRING);
    $numero = filter_input($INPUT_POST, 'numero', FILTER_SANITIZE_STRING);
    $imei_chip = filter_input($INPUT_POST, 'imei_chip', FILTER_SANITIZE_STRING);
    $plano = filter_input($INPUT_POST, 'plano', FILTER_SANITIZE_STRING);
    $dados = filter_input($INPUT_POST, 'dados', FILTER_SANITIZE_STRING);
    $fone = filter_input($INPUT_POST, 'fone', FILTER_SANITIZE_STRING);
    $matricula = filter_input($INPUT_POST, 'matricula', FILTER_SANITIZE_STRING);
    $responsavel = filter_input($INPUT_POST, 'responsavel', FILTER_SANITIZE_STRING);
    $funcao = filter_input($INPUT_POST, 'funcao', FILTER_SANITIZE_STRING);
    $cod_setor = filter_input($INPUT_POST, 'cod_setor', FILTER_SANITIZE_STRING);
    $setor = filter_input($INPUT_POST, 'setor', FILTER_SANITIZE_STRING);
    $obs = filter_input($INPUT_POST, 'obs', FILTER_SANITIZE_STRING);
    
    $result_telefone = "INSERT INTO cadastro_telefone (marca, modelo, sn, imei, numero, imei_chip, plano, minutos, dados, fone, matricula, responsavel, funcao, cod_setor, setor, obs, data)
        SELECT * FROM (SELECT '$marca', '$modelo', '$sn', '$imei', '$numero', '$imei_chip', '$plano', '$minutos', '$dados', '$fone', '$matricula', '$responsavel', '$funcao', '$cod_setor', '$setor', '$obs', now() ) AS temp
        WHERE NOT EXISTS (
            SELECT matricula FROM cadastro_telefone WHERE matricula = '$matricula'
        ) LIMIT 1;";
    
    if(!mysqli_query($conn, $result_telefone)){
        $_SESSION['msg'] = "<p style='color:red;'>Não foi possível cadastrar o telefone..</br> 
        <b>Motivo:</b> Ocorreu um erro com o banco de dados.</p>";
        header("Location: cadastrar-telefone.php");
    }
    
    if(mysqli_affected_rows($conn) > 0){
        $_SESSION['msg'] = "<b><p style='color:green;'>Telefone foi cadastrado com sucesso!</p></b>";
        header("Location: cadastrar-telefone.php");
    } else {
        $_SESSION['msg'] = "<p style='color:red;'>Não foi possível cadastrar o telefone.</br> 
        <b>Motivo:</b> Esta Matricula já está cadastrada em nosso Sitema!</p>";
        header("Location: cadastrar-telefone.php");
    }
    ?>

 

ulOAS.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.