Problema com conexão com banco de dados PHP OO
Olá galera... estou começando a trabalhar com php orientado a objetos e estou com um problema que não achei a solução
tenho uma classe para conexão, uma classe para o membro e uma pagina para realização do login... Meu problema é que o sql so funciona se eu colocar qual o banco de dados que estou trabalhando, porém na minha conexão já estou dizendo isso será que alguém pode me dizer pq isso acontece?? abaixo segue os arquivos.
Classe de conexão
<?php
/**
* Classe Connection
* Gerencia conexões com bancos de dados.
*/
class Connection
{
protected $host;
protected $user;
protected $pass;
protected $db;
function __construct($host, $user, $pass, $db)
{
$this->host = $host;
$this->user = $user;
$this->pass = $pass;
$this->db = $db;
}
/* Método de conexão com o Banco de Dados*/
public function connect()
{
$conn = new PDO("mysql:host={$this->host};port='3307';dbname={$this->db}", $this->user, $this->pass);
// define para que o PDO lance exceções na ocorrência de erros
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// retorna o objeto instanciado.
return $conn;
}
}
?>
Classe Membro onde é feita a validação
<?php
/**
*
*/
class Membro
{
// Atributos da Classe
private $id;
private $email;
private $senha;
function __construct()
{
}
// Método de Autenticação
public function validaMembro($email, $senha)
{
// Procura por usuários com o mesmo usuário e senha
// É AQUI QUE O PROBLEMA OCORRE EU TENHO QUE FALAR COM O BANCO DE DADOS SENDO QUE EU JÁ INFORMEI NA STRING DE CONEXÃO
$sql = "SELECT * FROM db.tabela WHERE email = '$email' and senha = '$senha' ";
$query = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($query)>0) {
return true;
}
else{
return false;
}
}
}
?>Login.php
<?php
if (!isset($_SESSION)) {
session_start();
}
if (!isset($_SESSION['membro']) and $_SERVER['SCRIPT_NAME']!='/index.php') {
header("Location: index.php");
}
// Conexão com Banco de Dados
$conn = new Connection('localhost', 'root', 'xxxxxx', 'tabela');
$conn->connect();
// Instancia do membro
$membro = new Membro();
$email = $_REQUEST['email'];
$senha = $_REQUEST['pass'];
if (isset($_REQUEST['submit'])) {
if ($membro->validaMembro($email, $senha)) {
$_SESSION['membro'] = true;
header("Location: painel.php");
}else{
unset($_SESSION['membro']);
echo "Login ou Senha incorretos, tente novamente!";
}
}
?>
<!DOCTYPE HTML>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Sistema</title>
</head>
<body>
<div class="container">
<form class="formSignin" action="index.php" method="post">
<h2 class="form-signin-heading">Células</h2>
<input type="text" name="email" class="input-block-level" placeholder="E-mail">
<input type="password" name ="pass" class="input-block-level" placeholder="Senha">
<input type="submit" name="submit" value="Login" class="btn btn-large btn-primary">
</form>
</div>
</body>
</html>
Lembrando q o script está funcioando.. o unico problema é eu ter q toda vez informar o banco de dados quero saber pq isso acontece..
Discussão (10)
Carregando comentários...