Verificar Dados
Olá.
Eu tenho um CRUD, porem no insert eu quero verificar se os dados existem na tabela, se existir ele não insere os mesmos dados. Pois a minha intenção é fazer um sistema de Cadastro e Login. Segue o código abaixo.
<?php
require_once 'Crud.php';
class Usuarios extends Crud {
protected $table = 'usuarios';
private $usuario;
private $email;
private $senha;
public function setUsuario($usuario) {
$this->usuario = $usuario;
}
public function setEmail($email) {
$this->email = $email;
}
public function setSenha($senha) {
$options = [
'cost' => 11,
];
$this->senha = password_hash($senha, PASSWORD_BCRYPT, $options);
if(password_verify($senha, $this->senha)){
return true;
}
return false;
}
public function insert() {
$sql = "INSERT INTO $this->table (usuario, email, senha) VALUES (:usuario, :email, :senha)";
$stmt = DB::prepare($sql);
$stmt->bindParam(':usuario', $this->usuario);
$stmt->bindParam(':email', $this->email);
$stmt->bindParam(':senha', $this->senha);
return $stmt->execute();
}
public function update($id) {
$sql = "UPDATE $this->table SET usuario = :usuario, email = :email, senha = :senha WHERE id = :id";
$stmt = DB::prepare($sql);
$stmt->bindParam(':usuario', $this->usuario);
$stmt->bindParam(':email', $this->email);
$stmt->bindParam(':senha', $this->senha);
$stmt->bindParam(':id', $id);
return $stmt->execute();
}
}
Eu sei que tenho que dar um SELECT na tabela e verificar se existe com um rowCount... eu acho, não tenho certeza.
Como eu posso fazer isso? Ah, e também queria verificar se os dados estão preenchidos. Lá na página registro.php eu fiz assim.
<?php
$usuarios = new Usuarios();
if(isset($_POST["usuario"]) && isset($_POST["email"]) && isset($_POST["senha"]) && isset($_POST["checkregistro"])) {
if(empty($_POST["usuario"]) OR empty($_POST["email"]) OR empty($_POST["senha"]) OR empty($_POST["checkregistro"])) {
echo '<div id="register-erro" style="display:none;z-index:1000;">Ainda tem campos vazios.</div>';
}else {
if(isset($_POST['cadastrar'])) {
$usuario = $_POST["usuario"];
$email = $_POST["email"];
$senha = $_POST["senha"];
$usuarios->setUsuario($usuario);
$usuarios->setEmail($email);
$usuarios->setSenha($senha);
#Insert
if($usuarios->insert()) {
echo '<div id="registro-feito" style="display:none;z-index:1000;">Conta registrada com sucesso!</div>';
}
}
}
}
?>
O que devo fazer para verificar se existe os dados no banco? E como fazer, me da uma dica, por favor.
Obrigado desde já.Discussão (1)
Carregando comentários...