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

Controle De Registro Iguais No Bd Postgree


Martinsrj

Pergunta

Olá pessoal pessoal, beleza? Quero uma luz dos mais experientes.

Tenho um banco de dados em postgree que o campo login é a chave primaria da seguinte forma:

CREATE TABLE usuarios

(

nome character varying(100) NOT NULL,

email character varying(100) NOT NULL,

estado character(2) NOT NULL,

"login" character varying(30) NOT NULL,

senha character varying(30) NOT NULL,

confirmacao character varying(30) NOT NULL,

CONSTRAINT usuarios_pkey PRIMARY KEY ("login")

)

Então quando a pessoa realiza o cadastro do formulário com o mesmo login que já existe no banco de dados ele dá a seguinte mensagem:

Warning: pg_query() [function.pg-query]: Query failed: ERROR: duplicate key violates unique constraint "usuarios_pkey" in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\cadastro.php on line 70

Existe como eu realizar esse tratamento no php, pois será necessário que antes de realizar o post o php venha verificar no banco se já existe tal login e caso seja diferente realizar a inserção de dados.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Realizei algumas modificações no código do cadastro.php inserindo as linhas numeradas abaixo, mas agora dá a seguinte mensagem de erro:

Parse error: parse error, unexpected $end in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\cadastro.php on line 92

Código abaixo:

<?php

$nome = $_POST["nome"];

$email = $_POST["email"];

$estado = $_POST["estado"];

$login = $_POST["login"];

$senha = $_POST["senha"];

$confirmacao = $_POST["confirmacao"];

$email = str_replace (" ", "", $email);

$email = str_replace ("/", "", $email);

$email = str_replace ("@.", "@", $email);

$email = str_replace (".@", "@", $email);

$email = str_replace (",", ".", $email);

$email = str_replace (";", ".", $email);

$operacao = $_POST["operacao"];

include "conecta_pg.php";

$erro=0;

// verifica nome

if (empty($nome)) {

$erro=1;

$msg = "Por favor, digite seu nome corretamente.";

}

//verifica email

elseif (strlen($email)<8 || substr_count($email, "@")!=1

|| substr_count($email, ".")==0) {

$erro=1;

$msg="Por favor, digite seu email corretamente.";

}

// verifica Estado

elseif(strlen($estado)!=2) {

$erro=1;

$msg="Por favor, escolha seu estado.";

}

// Verifica login

elseif(strlen($login)<5 || strlen($login)>15) {

$erro=1;

$msg="O nome de usuário (login) deve ter entre 5 e 15 caracteres.";

}

elseif(strstr($login, ' ')!=FALSE) {

$erro=1;

$msg="O nome de usuário (login) não pode conter espaços em branco.";

}

// Verifica o login duplicado

/* elseif {

$login_duplicado = pg_query("SELECT login FROM usuarios WHERE login='$login'");

if (pg_num_rows($login_duplicado)> 0) {

if($login == $login){

$msg = "Login já cadastrado em nosso banco de dados!"; */

// verifica senha

elseif(strlen($senha)<5 || strlen($senha)>15) {

$erro=1;

$msg = "A senha deve ter entre 5 e 15 caracteres";

}

elseif(strstr ($senha, ' ')!=FALSE) {

$erro=1;

$msg = "A senha não pode conter espaços em branco.";

}

// compara a senha com a confirmação da senha

elseif ($senha != $confirmacao) {

$erro=1;

$msg = "Você digitou duas senhas diferentes.";

}

// se ocorreu erro, exibe a mensagem de erro

if($erro)

{

echo "<html><body>";

echo"<p align=center>$msg</p>";

echo "<p align=center><a href='java script:history.back()'>Voltar</a></p>";

echo "</body></html>";

exit;

}

elseif($operacao=="incluir")

{

$login_duplicado = pg_query("SELECT login FROM usuarios WHERE login='$login'");

if (pg_num_rows($login_duplicado)> 0) {

if($login == $login){

//$msg = "Login já cadastrado em nosso banco de dados!";

echo "<p align=center>Login já cadastrado em nosso banco de dados!</p>";

}

else {

$sql = "INSERT INTO usuarios (nome, email, estado, login, senha, confirmacao) VALUES ";

$sql .= "('$nome', '$email', '$estado', '$login', '$senha', '$confirmacao')";

$resultado = pg_query($sql);

echo "<html><body>";

echo "<p align=center>Seu cadastro foi realizado com sucesso!</p><br><br>";

echo "<p align=\"center\"><a href=\"login.html\">Faça seu Login!!!</a></p>";

88 echo "</body></html>";

89 }

90

91 pg_close($conexao);

92 ?>

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,3k
    • Posts
      652,1k
×
×
  • Criar Novo...