Então pessoal, estou com um problema com uma classe extendida, não consegui resolver o seguinte erro
SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe pr�s de ''visitantes' WHERE email = 'djricardo@.com' AND senha = '202cb962ac59075b964b071' � la ligne 1
Segue abaixo os codigos
<?php
/**
* CLASSE DE LOGIN EXTENDIDA COM O BANCO DE DADOS
*/
class Login extends BD{
private $tabela;
private $prefixo;
public function __construct($table = 'visitantes', $pref = 'downs_'){
$this->tabela = $table;
$this->prefixo = $pref;
}// CONSTROI O ATRIBUTO
private function criptar($senha){
return md5($senha);
}// CRIPTOGRAFA A SENHA
private function validar($email, $senha){
$senha = $this->criptar($senha);
try {
$verificar = self::conn()->prepare("SELECT * FROM '".$this->tabela."' WHERE email = ? AND senha = ? AND status = '1'");
//$verificar->bindValue(1, $email);
//$verificar->bindValue(2, $senha);
$verificar->execute(array($email, $senha));
return ($verificar->rowCount() >0) ? true : false;
} catch (PDOException $e) {
echo $e->getMessage();
}
}// VALIDAR USUARIOS
public function logar($email, $senha){
if ($this->validar($email, $senha)){
$_SESSION[$this->prefixo.'email'] = $email;
$_SESSION[$this->prefixo.'senha'] = $senha;
return true;
}else{
return false;
}
}// FUNÇAO PARA LOGAR USUARIOS
}// fim da classe login
?>
==============================================
a outra pagina de login
o formulario e o resto do codigo
<?php
session_start();// STARTANDO A SESSAO DO USUARIOS
/* INCLUSAO DAS PAGINAS DE BANCO E LOGIN */
include_once "../config.php";
require_once "../classes/BD.class.php";
require_once "../classes/Login.class.php";
if ($email == '' || $senha == '') {
echo'<script>alert("Preencha o LOGIN & SENHA");location.href="login.php"</script>';
}else{
if ($log->logar($email, $senha)) {
header("location : admin.php");
}else{
//echo'<script>alert("Erro ao efetuar Login");location.href="login.php"</script>';
}// FIM DO IF DE REDIRECIONAMENTO DE LOGIN
}// FIM DO IF DE VERIFICAÇAO
}// FIM DO IF DE VERIFICAÇAO DE EXISTENCIA DE LOGIN
?>
<div id="logar">
<form action="" method="post" enctype="multipart/form-data">
<span class="log">Login de Usuarios</span>
<span>Email: <input type="text" name="email" placeholder="Email de Login"></span>
<span>Senha: <input type="password" name="senha" placeholder="Senha de Login"></span>
<input type="hidden" name="acao" value="logando">
<input type="submit" value="Fazer Login" class="btn">
</form>
</div> <!-- fim da div logar -->
<div style="clear: both;"></div>
</body>
</html>
Pergunta
RaimundoCosta
Então pessoal, estou com um problema com uma classe extendida, não consegui resolver o seguinte erro
SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe pr�s de ''visitantes' WHERE email = 'djricardo@.com' AND senha = '202cb962ac59075b964b071' � la ligne 1
Segue abaixo os codigos
<?php
/**
* CLASSE DE LOGIN EXTENDIDA COM O BANCO DE DADOS
*/
class Login extends BD{
private $tabela;
private $prefixo;
public function __construct($table = 'visitantes', $pref = 'downs_'){
$this->tabela = $table;
$this->prefixo = $pref;
}// CONSTROI O ATRIBUTO
private function criptar($senha){
return md5($senha);
}// CRIPTOGRAFA A SENHA
private function validar($email, $senha){
$senha = $this->criptar($senha);
try {
$verificar = self::conn()->prepare("SELECT * FROM '".$this->tabela."' WHERE email = ? AND senha = ? AND status = '1'");
//$verificar->bindValue(1, $email);
//$verificar->bindValue(2, $senha);
$verificar->execute(array($email, $senha));
return ($verificar->rowCount() >0) ? true : false;
} catch (PDOException $e) {
echo $e->getMessage();
}
}// VALIDAR USUARIOS
public function logar($email, $senha){
if ($this->validar($email, $senha)){
$_SESSION[$this->prefixo.'email'] = $email;
$_SESSION[$this->prefixo.'senha'] = $senha;
return true;
}else{
return false;
}
}// FUNÇAO PARA LOGAR USUARIOS
}// fim da classe login
?>
==============================================
a outra pagina de login
o formulario e o resto do codigo
<?php
session_start();// STARTANDO A SESSAO DO USUARIOS
/* INCLUSAO DAS PAGINAS DE BANCO E LOGIN */
include_once "../config.php";
require_once "../classes/BD.class.php";
require_once "../classes/Login.class.php";
$log = new Login;
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="../css/logUser.css">
<title>Login - Usuarios</title>
</head>
<body>
<?php
if (isset($_POST['acao']) && $_POST['acao'] == "logando") {
$email = strip_tags(filter_input(INPUT_POST, 'email'));
$senha = strip_tags(filter_input(INPUT_POST, 'senha'));
if ($email == '' || $senha == '') {
echo'<script>alert("Preencha o LOGIN & SENHA");location.href="login.php"</script>';
}else{
if ($log->logar($email, $senha)) {
header("location : admin.php");
}else{
//echo'<script>alert("Erro ao efetuar Login");location.href="login.php"</script>';
}// FIM DO IF DE REDIRECIONAMENTO DE LOGIN
}// FIM DO IF DE VERIFICAÇAO
}// FIM DO IF DE VERIFICAÇAO DE EXISTENCIA DE LOGIN
?>
<div id="logar">
<form action="" method="post" enctype="multipart/form-data">
<span class="log">Login de Usuarios</span>
<span>Email: <input type="text" name="email" placeholder="Email de Login"></span>
<span>Senha: <input type="password" name="senha" placeholder="Senha de Login"></span>
<input type="hidden" name="acao" value="logando">
<input type="submit" value="Fazer Login" class="btn">
</form>
</div> <!-- fim da div logar -->
<div style="clear: both;"></div>
</body>
</html>
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.