Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, preciso de uma força com minha classe de login. Ela funcionava perfeitamente no mysql, mas tive que mudar o bando do sistema para postgre e agora ela não funfa nem a pau! Eu sou iniciante no mundo do php então se vcs puderem me dar uma força agradeço.
Esta é minha classe do banco de dados:
<?php
class Bd {
protected $host;
protected $user;
protected $pass;
protected $bd;
protected $port;
protected $conn;
public function __construct($host,$user,$pass,$bd,$port) {
$this->_host = $host;
$this->_user = $user;
$this->_pass = $pass;
$this->_bd = $bd;
$this->_port = $port;
}
public function getHost() {
return $this->_host;
}
public function getUser() {
return $this->_user;
}
public function getBd() {
return $this->_bd;
}
public function connect(){
$this->conn = pg_connect("host=$this->_host dbname=$this->_bd port=$this->_port user=$this->_user password=$this->_pass");
return $this->conn;
}
public function verificaConn(){
if(!$this->conn){
$erro = "Erro ao conectar ao banco [".$this->_bd."] em [".$this->_host."]";
$erro.= " na porta [".$this->_port."] com o usuario [".$this->_user."];";
echo $erro;
exit;
}
else{
echo "Conexão efetuada com sucesso!";
}
}
public function listar($coluna,$tabela,$valores) {
$sql = "select $coluna from `$tabela` $valores";
$res = pg_query($sql);
$ret = array($res);
if(pg_num_rows($res)>0) {
for($i=0;$i<pg_num_rows($res);$i++) {
$ret[] = pg_fetch_array($res);
}
}
return $ret;
}
public function adcionar($tabela,$campos,$valores){
$sql = "INSERT INTO `$tabela` ($campos) VALUES($valores)";
pg_query($sql);
}
public function editar($tabela,$valores){
$sql = "UPDATE `$tabela` set $valores";
pg_query($sql);
}
public function remover($tabela,$valor) {
$sql = "delete from `$tabela` where $valor";
pg_query($sql);
}
public function totalregistros($coluna,$tabela,$valores){
$sql = "SELECT $coluna FROM `$tabela`$valores";
$res = pg_query($sql);
$ret = pg_num_rows($res);
return $ret;
}
public function assoc($coluna,$tabela,$valores){
$sql = "SELECT $coluna FROM '$tabela'$valores";
$res = pg_query($sql);
$ret = pg_fetch_assoc($res);
return $ret;
}
}
?>
classe de validação:
<?php
class Usuarios {
protected $_bd;
public $_coluna;
public $_tabela;
public $_indice;
public $_valores;
public function __construct(Bd $bd,$coluna,$tabela,$indice){
$this->_bd = $bd;
$this->_coluna = $coluna;
$this->_tabela = $tabela;
$this->_indice = $indice;
}
public function usuarios($inicio,$limite){
$valores = "order by matricula limit $inicio,$limite";
return $this->_bd->listar('*',$this->_tabela,$valores);
}
public function validausuario($usuario,$senha){
$coluna = "id, nome, nivel";
$valores = " WHERE usuario=$usuario AND senha=$senha AND ativo=1 LIMIT 1";
return $this->_bd->totalregistros($coluna,$this->_tabela,$valores);
}
public function usuario($usuario,$senha){
$coluna = "id, nome, nivel";
$valores = " WHERE usuario=$usuario AND senha=$senha AND ativo=1 LIMIT 1";
return $this->_bd->assoc($coluna,$this->_tabela,$valores);
}
?>
pagina de validação
<?php
if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {
header("Location: index.php"); exit;
}
include 'config.php';
$usuario = $_REQUEST['usuario'];
$senha = sha1($_REQUEST['senha']);
$valida = $user->validausuario($usuario,$senha);
if ($valida != 1) {
echo "Login inválido!"; exit;
} else {
$result = $user->usuario($usuario,$senha);
if (!isset($_SESSION)) session_start();
$_SESSION['UsuarioID'] = $result['id'];
$_SESSION['UsuarioNome'] = $result['nome'];
$_SESSION['UsuarioNivel'] = $result['nivel'];
header("Location: index2.php"); exit;
}
?>
Como falei lá no começo sou iniciante, então tambem se puderem me dar algumas dicas de como melhorar este codigo agradeço.
Abraços
Carregando comentários...