Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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! :)
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!
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:
é 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!!!
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
acho que ficaria mais ou menos assim.
espero ter ajudado