Ir para conteúdo

POWERED BY:

Arquivado

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

TheNight

Verificar se existe os dados no cadastro

Recommended Posts

Galera tenho problemas em verificar se já existe cadastrado no sistema(database) o email ou usuário, como posso fazer isso usando este código:

<?php 
session_start();
	include("configs/config.php");
?>
<h3 class="h3users">CADASTRE-SE</h3>
<hr class="hr"/>
<h4 class="h4users">Formulário de cadastro</h4>
<div class="box_painel">
		<form method="post" action="">
			<input type="text" name="nome_c" placeholder="Digite seu nome" class="input_style">
			<input type="text" name="email_c" placeholder="E-Mail" class="input_style">
			<input type="text" name="username_c" placeholder="Nome de usuário" class="input_style">
			<input type="password" name="password_c" placeholder="Senha" class="input_style">
			<label>
				<input type="checkbox" name="remember_me" id="remember_me" class="remember_me">
				<a href="#">Aceito os termos</a>
			</label>
			<input type="submit" name="cadastrar" value="Cadastrar" class="btn">
      </form>
</div>
<br>
<?php
//INSERT INTO table_name (column1,column2,column3,...)
//VALUES (value1,value2,value3,...);
	
	if(isset($_POST['cadastrar'])){
		$nomec 		= strip_tags(trim($_POST['nome_c']));
		$emailc 	= strip_tags(trim($_POST['email_c']));
		$usernamec 	= strip_tags(trim($_POST['username_c']));
		$passwordc	= strip_tags(trim($_POST['password_c']));
		
		$sql_query   = 'INSERT INTO dks_login (nome, email, username, password)';
		$sql_query	.= 'VALUES (:nome,:email,:username,:password)';
		
		try{
			if(empty($nomec)|| empty($emailc)|| empty($usernamec)|| empty($passwordc)){
				echo '<br><div class="restore" style="width:288px;">Por favor complete todos os campos.</div>';exit;
			}
			$sql_query = $conn->prepare($sql_query);
			$sql_query->bindValue(':nome',$nomec,PDO::PARAM_STR);
			$sql_query->bindValue(':email',$emailc,PDO::PARAM_STR);
			$sql_query->bindValue(':username',$usernamec,PDO::PARAM_STR);
			$sql_query->bindValue(':password',$passwordc,PDO::PARAM_STR);
			$sql_query->execute();
			echo '<br><div class="info" style="width:288px;">Cadastrado com sucesso!</div>';
		}catch(PDOException $e){
			echo 'Cadastro erro! '.$e->getMessage();
		}
?>

Desculpe a má organização do código não manjo mto com fórum e organizei usando a tecla space e não tab :/

 

Help to my web work! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia.

 

 

faça uma verificação no banco de dados antes ou coloque essa logica em uma procedure.

 

exemplos:

--"select top 1 idusuario from dks_login where username = '$usernamec' or email = '$emailc';"


--Execute essa query e se retornar algo é pq o usuário existe.


--ou você pode colocar essa lógica em uma procedure, ai quando um usuário existir altera as informações ou algo do tipo.


--SQL_SERVER

CREATE PROCEDURE sp_cadastrar(
     @nome varchar(200),
     @email varchar(100),
     @username varchar(100),
     @senha varchar(50)
)
AS
BEGIN
   IF(EXISTS(select id from dks_login where username = @username or email = @email))
      BEGIN
         UPDATE dks_login
         SET nome = @nome,
         WHERE email = @email or username = @username
      END;
   ELSE
      BEGIN
         INSERT INTO dks_login (nome, email, username, password)
         VALUES (@nome, @email, @username, @password);
      END;
END;

acho que ficaria mais ou menos assim.

 

espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luiz Magno, eu tentei isso que você falou porém nada mudou... a verificação ficou + ou - assim:

<?php
//INSERT INTO table_name (column1,column2,column3,...)
//VALUES (value1,value2,value3,...);
	
	if(isset($_POST['cadastrar'])){
		
		$select ="select top 1 idusuario from dks_login where username = '$usernamec' or email = '$emailc';";
		//$select = $conn->prepare($select);
		$result->execute();
		
		$count = $result->rowCount();
		if($count>0){
			echo 'erro: existem na db o usuário ou email já registrados.';
		}else{
			$nomec 		= strip_tags(trim($_POST['nome_c']));
			$emailc 	= strip_tags(trim($_POST['email_c']));
			$usernamec 	= strip_tags(trim($_POST['username_c']));
			$passwordc	= strip_tags(trim($_POST['password_c']));
			
			$sql_query   = 'INSERT INTO dks_login (nome, email, username, password)';
			$sql_query	.= 'VALUES (:nome,:email,:username,:password)';
			
			try{
				if(empty($nomec)|| empty($emailc)|| empty($usernamec)|| empty($passwordc)){
					echo '<br><div class="restore" style="width:288px;">Por favor complete todos os campos.</div>';exit;
				}
				$sql_query = $conn->prepare($sql_query);
				$sql_query->bindValue(':nome',$nomec,PDO::PARAM_STR);
				$sql_query->bindValue(':email',$emailc,PDO::PARAM_STR);
				$sql_query->bindValue(':username',$usernamec,PDO::PARAM_STR);
				$sql_query->bindValue(':password',$passwordc,PDO::PARAM_STR);
				$sql_query->execute();
				echo '<br><div class="info" style="width:288px;">Cadastrado com sucesso!</div>';
			}catch(PDOException $e){
				echo 'Cadastro erro! '.$e->getMessage();
			}
		}
	}
?>

Porem não está verificando nada :(

 

Alguma luz ? já fazem 3 dias e meu código não funciona!

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparentemente a query está correta,

Ffaz o seguinte teste, Simule com essa query os valores manuais e execute diretamente no banco de dados,

verifique se ira retornar algum valor caso sim cole exatamente a query de teste novamente no código e veja o resultado se não obter um resultado quer dizer que algo está errado na sua lógica (mesmo aparentemente estando certa)

 

A única coisa que reparei logo de cara que a prepare() está comentada, mas imagino que não seja isso. :assobiando:

Compartilhar este post


Link para o post
Compartilhar em outros sites

é eu tinha comentado pra ver o que estava acontecendo, mas continuava com o mesmo erro, mas consegui resolver refiz meu código de outra forma, podem fechar o tópico e obrigado á quem me ajudou!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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