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

(Resolvido) Checagem de duplicidade de dados


Eduardo Enrietti

Pergunta

Galera, estou montando um sistema simples de cadastro de usuários, não sou expert em PHP, vi varios codigos na net explicando como fazer um SELECT para verificar se ao cadastrar não existe uma duplicidade de dados.

Todo form funciona, as infos são guardadas no DB normal, MAS COM DUPLICIDADE.

Segue abaixo o código, se alguém puder ajudar fico agradecido

<?php 
include ('../config.php');

function AntiInjection($Param){
$Param = strip_tags($Param); // Retira tags HTML
$Param = addslashes($Param); // Acrescenta barra invertida (”\”) caso insira aspas simples (”‘”) escapando o caracter
$Param = mysql_escape_string($Param); //Retira todas as tags mysql, como por exemplo, SELECT, DROP TABLE, ALTER TABLE, etc.
$Param = strtolower($Param); // Deixa os caracteres em caixa baixa.
return $Param;
}

// RECEBENDO OS DADOS PREENCHIDOS DO FORMULÁRIO
$nome = utf8_decode(@$_POST['nome']);
$nome = AntiInjection(@$_POST['nome']);
$cargo = utf8_decode(@$_POST['cargo']);
$cargo = AntiInjection(@$_POST['cargo']);
$email = utf8_decode(@$_POST['email']);
$email = AntiInjection(@$_POST['email']);
$tel1ddd = utf8_decode(@$_POST['tel1ddd']);
$tel1ddd = AntiInjection(@$_POST['tel1ddd']);
$tel1 = utf8_decode(@$_POST['tel1']);
$tel1 = AntiInjection(@$_POST['tel1']);
$tel2ddd = utf8_decode(@$_POST['tel2ddd']);
$tel2ddd = AntiInjection(@$_POST['tel2ddd']);
$tel2 = utf8_decode(@$_POST['tel2']);
$tel2 = AntiInjection(@$_POST['tel2']);
$login = utf8_decode(@$_POST['login']);
$login = AntiInjection(@$_POST['login']);
$cript = md5('$senha');
$data = date("Y-m-d");
$hora = strftime("%H:%M:%S");
$ip = $_SERVER['REMOTE_ADDR'];
$ip = AntiInjection(@$_SERVER['REMOTE_ADDR']);

$query = "SELECT login FROM cpdj_admin WHERE login='$login'";

$resultado = mysql_query($query, $db);
$total = mysql_num_rows($resultado);

if ($total==1) {
echo "&lt;script>alert('Usuário já existe. Caso tenha perdido sua senha, clique no link Esqueci Minha Senha');</script>";
echo "<meta http-equiv=\"refresh\" content=\"0;url=java script:history.back()\">";    
}
else {

//Gravando no banco de dados
$query = "INSERT INTO `cpdj_admin` ( `nome` , `cargo` , `email` , `tel1ddd` , `tel1` , `tel2ddd` , `tel2` , `login` , `senha` , `ul_data` , `ul_time` , `id` , `ip`) 
VALUES ('$nome', '$cargo', '$email', '$tel1ddd', '$tel1', '$tel2ddd', '$tel2', '$login', '$cript' , '$data', '$hora', '', '$ip')";

mysql_query($query,$db);
}
if ($query) {
echo "&lt;script>alert('Cadastro efetuado com sucesso');</script>";
echo "<meta http-equiv=\"refresh\" content=\"0;url=http://www.cursoparadj.com.br/admin/cadastro.php\">";
}
else {
echo "&lt;script>alert('Ocorreu um erro no cadastro, tente novamente. Caso o erro persista, entrar em contato com o administrador do sistema');</script>";
echo "<meta http-equiv=\"refresh\" content=\"0;url=java script:history.back()\">";
}
?>

Abraços

Editado por Jonathan Queiroz
Remover caixa alta do título (Jonathan)
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Qual o seu conhecimento de PHP e MySQL.

Para impedir duplicidade basta criar uma query procurando os valores que serão inseridos. Se retornar algum resultado, exibe uma mensagem de erro ao usuário informando que esses dados já estão no BD.

Jonathan, pode-se dizer que meu conhecimento em bem basico mesmo.

Eu entendi o que você quis dizer, e acredito que tenha sido isso que coloquei em meu código, porém não está acontecendo, o formulario é enviado normalmente mesmo existindo o mesmo login no banco de dados!

Link para o comentário
Compartilhar em outros sites

  • 0

PROBLEMA RESOLVIDO

[b]$query [/b]= "SELECT login FROM cpdj_admin WHERE login='$login'";

$resultado = mysql_query([b]$query[/b], $db);
$total = mysql_num_rows($resultado);
Como já existia uma query onde eu enviava os dados para o DB, provavelmente o codigo entrava em conflito com duas variaveis iguais, então eu alterei para:
[b]$pesquisa[/b] = "SELECT login FROM cpdj_admin WHERE login='$login'";

$resultado = mysql_query([b]$pesquisa[/b], $db);
$total = mysql_num_rows($resultado);

Editado por Eduardo Enrietti
Link para o comentário
Compartilhar em outros sites

Participe da discussão

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

Visitante
Responder esta pergunta...

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

  Apenas 75 emoticons são permitidos.

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

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

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



  • Estatísticas dos Fóruns

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