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

Cadastro PHP OO


Rubens Meirelles

Pergunta

Olá, sou novo no fórum e não consegui encontrar resposta para minha dúvida.

Estou aprendendo PHP OO e minha dúvida é a seguinte.

Tenho a seguinte classe (a função principal aqui é a de "adicionar" e a de "existeEmail":

<?php
include_once '../conection/config.php';
	class Usuarios{
		private $pdo;
		private $id;
		private $permissoes;

		public function __construct($pdo){
			$this->pdo = $pdo;
			}
		public function fazerlogin($email, $senha){
			$sql = "SELECT * FROM usuarios WHERE email = :email AND senha = :senha";
			$sql = $this->pdo->prepare($sql);
			$sql->bindValue(":email",$email);
			$sql->bindValue(":senha",$senha);
			$sql->execute();

			if($sql->rowCount() > 0){
				$sql = $sql->fetch();
				$_SESSION['logado'] = $sql['id'];

				return true;
			}
			else {
				return false;
			}
		}

		public function adicionar($email, $senha = ''){
		//verificar se o e-mail já está cadastrado
		if ($this->existeEmail($email)==false) {
			$sql = "INSERT INTO usuarios (email, senha) VALUES (:email, :senha)";
			$sql = $this->pdo->prepare($sql);
			$sql->bindValue(':email', $email);
			$sql->bindValue(':senha', $senha);
			$sql->execute();
			return true;
		} else {
			return false;
			$msg = 'Email já cadastrado';
		}
	}

		public function setUsuario($id){
			$this->id = $id;

			$sql = "SELECT * FROM usuarios WHERE id = :id";
			$sql = $this->pdo->prepare($sql);
			$sql->bindValue(":id",$id);
			$sql->execute();

			if($sql->rowCount() > 0){
				$sql = $sql->fetch();

				$this->permissoes = explode(',', $sql['permissoes']);
			}
		}

		public function getPermissoes(){
			return $this->permissoes;
		}

		public function temPermissao($p){
			if (in_array($p, $this->permissoes)) {
				return true;
			} else {
				return false;
			}
		}

		//função auxiliar criada para verificar se existe o email cadastrdo
	private function existeEmail($email){
		$sql = "SELECT * FROM usuarios WHERE email = :email";
		$sql = $this->pdo->prepare($sql);
		$sql->bindValue(':email', $email);
		$sql->execute();

		if ($sql->rowCount() > 0) {
			return true;
			
		} else {
			return false;	
		}

	}
}
?>

Tenho o arquivo "insertUser.php" que de acordo com a classe Usuarios faz a inserção dos dados e em seguida retornar para a página de cadastro de usuários

<?php 
    session_start();
    require '../conection/config.php';
    require '../classes/usuarios.class.php';

    if(!isset($_SESSION['logado'])){
        header("Location:pages/login.php");
        exit;
    }  

    $usuarios = new Usuarios($pdo);
    $usuarios->setUsuario($_SESSION['logado']);

//verifica se houve o recebimento dos dados
if (!empty($_POST['email'])) {
	//se houve o recebimento dos dados adiciona em variáveis
	$email = $_POST['email'];
	$senha = $_POST['senha'];

	//utiliza a classe criada para adicionar
	$usuarios->adicionar($email, $senha);
	header("Location: cadUsuarios.php");
} 

E a página de cadastro de usuários:

 

<?php 
    session_start();
    require '../conection/config.php';
    require '../classes/usuarios.class.php';

    if(!isset($_SESSION['logado'])){
        header("Location:pages/login.php");
        exit;
    }  
    $usuarios = new Usuarios($pdo);
    $usuarios->setUsuario($_SESSION['logado']);
?>

<!DOCTYPE html>
<html lang="pt-br">

<head>
</head>

<body>
    <h1 class="page-header">Cadastrar Usuário</h1>
    <form method="POST" action="insertUser.php" role="form">
         <div class="form-group">
            <label>Email do usuário</label>
            <input type="email" name="email" class="form-control">
        </div>
        <div class="form-group">
            <label>Senha</label>
            <input type="password" name="senha" class="form-control">
        </div>
        <input type="submit" value="Cadastrar" class="btn btn-primary" style="margin-bottom: 20px">
    </form>
</body>
</html>

Como faço pra inserir mensagem de alerta informando quando o usuário foi cadastrado ou quando o usuário já existe, no caso a validação é pelo e-mail.

Como a validação é feita pela função que verifica se o e-mail já está cadastrado, não estou conseguindo inserir a mensagem de alerta, creio que seja no arquivo de insertUser, mas não estou conseguindo fazer.

Alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,4k
×
×
  • Criar Novo...