Luiis_xD 1 Denunciar post Postado Julho 3, 2016 Olá pessoal, bom sou novo na areá e estou enfrentando um problema que está acabando comigo Bom estou tentando fazer um sistema de cadastro de usuarios com PHP e mysql, eu queria saber se tem possivel que não sejam enviados dados duplicado para o banco de dados <?php error_reporting(0); $host = "localhost"; $user = "root"; $pass = ""; $db = "site"; $connect = mysql_connect($host, $user, $pass) or die(mysql_error()); mysql_select_db($db); ?> <?php $email = $_POST['email']; $nome = $_POST['nome']; $senha = $_POST['senha']; $sql = mysql_query("INSERT INTO tabela(nome, email, senha) VALUES ('$nome', '$email', '$senha')"); echo "Seu registro foi arquivado com Sucesso."; ?> exemplo quando um usuário colocar um e-mail igual a de um outro usuário, não enviar esse dado para o banco de dado e aparecer uma mensagem este e-mail já existe. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 4, 2016 Defina uma chave primária ou única e trate o erro. http://stackoverflow.com/questions/3146838/handle-error-for-duplicate-entries-php-mysql Compartilhar este post Link para o post Compartilhar em outros sites
Luiis_xD 1 Denunciar post Postado Julho 4, 2016 obrigado motta mais como que eu faço para que quando o usuario colocar um email ou usuario igual a de outra pessoa, apareça uma mensagem avisando que o dados já estão registrado meu codigo atualmente está assim <?php include_once("conexao.php"); $email = $_POST['email']; $nome = $_POST['nome']; $senha = $_POST['senha']; $sql = mysql_query("INSERT INTO tabela(nome, email, senha) VALUES ('$nome', '$email', '$senha')"); header("Location: ../login.php"); exit; ?> Compartilhar este post Link para o post Compartilhar em outros sites
L. Henrique 179 Denunciar post Postado Julho 4, 2016 Luiis,Vá até o seu banco de dados e defina a coluna E-MAIL como UNIQUE. Se outra pessoa tentar cadastrar com um e-mail que já existe, ele simplesmente não vai funcionar.Um exemplo de verificar no PHP se o e-mail já existe é: while ( $row = mysql_fetch_array($query) ) { if ( $row['email'] == $email ) { echo "Esse e-mail já está em uso"; } } Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
Luiis_xD 1 Denunciar post Postado Julho 4, 2016 olá Luis kkk bom eu fiz isso com o email e com o usuario sera que você poderia adaptar para o meu codigo? Compartilhar este post Link para o post Compartilhar em outros sites
L. Henrique 179 Denunciar post Postado Julho 5, 2016 Eae Luis! - Meu nome é Lucas, mas valeu a tentativa. hahahahahahaVamos ao que interessa... O certo é que você estude e tente fazer o próprio código, senão fica fácil demais, não acha? hahahahaha. Eu não sei como está o seu código completo, como você estruturou isso no seu banco de dados, quais são as variáveis, como os arquivos estão separados e por ai vai...Me explique: É PDO ou não?Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
Luiis_xD 1 Denunciar post Postado Julho 5, 2016 Desculpa lucas :D, consegui resolver meu problema obrigado ao 2 por se importarem em me ajudar, era tão simples, era so fazer uma verificação de quantas linhas foram afetas e no SELECT em vez de colocar AND era OR <?php include_once("conexao.php"); $email = $_POST['email']; $nome = $_POST['nome']; $senha = $_POST['senha']; $consulta = mysql_query("SELECT nome, email FROM tabela WHERE nome = '$nome' OR email = '$email'"); // Consulta $row = mysql_fetch_row($consulta); // Verifica quantas linhas foram achada // Verifica se o usuario preencheu todos os campos if($nome == '' || $email == '' || $senha ==''){ echo "Preencha Todos os Campos! <br/>"; echo "<a href='../registro.php'>Voltar</a>"; exit; } if($row > 0) { echo "Esse Email ou Senha ja está em Uso!"; exit; }else{ $sql = mysql_query("INSERT INTO tabela(nome, email, senha) VALUES ('$nome', '$email', '$senha')"); // Add Registro De user header("Location: ../login.php"); } mysql_close($connect); ?> Compartilhar este post Link para o post Compartilhar em outros sites