Login in Postgresql and PHP

1

Good people, I'm a beginner in programming and I'm learning in PostgreSQL since I know how to work in mysql and a little in PHP .

I'm creating the login form with PostgreSQL and PHP and I'm a little clumsy.

I have difficulties in English, I know that the English language is fundamental.

I found script's in google that looks good.

<?php
if(!@($conexao=pg_connect ("host=HOST dbname=BANCO port=5432 user=LOGIN password=SENHA"))) {
   print "Não foi possível estabelecer uma conexão com o banco de dados.";
} else {
   pg_close ($conexao);
   print "Conexão OK!"; 
}
?>

Can you help me create those "small" scripts? Thank you. P.: I'm deaf and Portuguese is more or less. I hope you understand what I wrote.

    
asked by anonymous 03.06.2016 / 13:31

2 answers

1

Connection:

$host = "localhost";
$db = "base_postgres";
$user = "usuario";
$pass = "palavra_passe";
$banco = new PDO("pgsql:host=$host;dbname=$db;user=$user;password=$pass");

Performing an insert:

$query = $banco->prepare("INSERT INTO tabela(coluna1,coluna2) VALUES(?,?)");
$query->bindValue(1,"Valor1",PDO::PARAM_STR);
$query->bindValue(2,"Valor2",PDO::PARAM_STR);
$query->execute();
if($query->rowCount()>0){ 
    echo "Cadastrado";    
}
else{
    echo "Falha";
}

Now a search example

$query = $banco->prepare("SELECT * FROM tabela WHERE coluna1 = ?");
$query->bindValue(1,"Valor1",PDO::PARAM_STR);
$query->execute();
if($query->rowCount()>0){ 
    $resultado = $query->fetchAll(PDO::FETCH_ASSOC);
    var_dump($resultado);    
}
else{
    echo "Falha";
}

For more details:

03.06.2016 / 14:31
0

I have here a code that does well what you want to do:
The best way is to choose to use classes to connect to the database, authentication, etc. Everything you want to do.

You can create a connection class to your database. Let me exemplify it for you:

<?php
class Banco {

private $cnn, $qry, $sql, $db;
private $host = "localhost";         //ip do seu localhost
private $user = "usuario_banco";     //user do banco de dados
private $pass = "senha_usuario_banco";            //pasword do seu banco de dados
private $banco = "nome_banco";       //nome do seu BD        

public function setHost($ip){
    $this->host = $ip;
}

public function setUser($usr){
    $this->user = $usr;
}

public function setPass($pwd){
    $this->pass = $pwd;
}

public function setBanco($db){
    $this->banco = $db;
}

private function Conectar(){

    $DADOS = (object) array(
                        "host" => $this->host,
            "port" => $this->porta,
                        "user" => $this->user,
                        "pass" => $this->pass,
                        "banco" => $this->banco
                      );
$str_conn = "host=".$DADOS->host." port=".$DADOS->port." dbname=".$DADOS->banco." user=".$DADOS->user." password=".$DADOS->pass;
    $this->cnn = pg_connect($str_conn) or die ("Erro ao tentar selecionar servidor da base de dados: " . pg_error());
}

public function Executar($sql){
    $this->sql = (string) $sql;

    self::Conectar();
    $this->qry = pg_query($this->cnn, $this->sql) or die ("Erro ao executar query na base de dados: " . pg_error());

    if(pg_affected_rows($this->qry) > 0){
    return $this->qry;
}else{
    return 0;   
}

self::Desconectar();
}

private function Desconectar(){
    return pg_close($this->cnn);
}
}
?>

Finally, you can also create an authentication class

public function __constructor($login, $senha){
    $this->_login = addslashes($login);
    $this->_senha = addslashes($senha);
    self::validaUser();
}

protected function validaUser(){
    $sql = "select para autenticacao";
    $rtn = parent::Executar($sql);

    if($rtn == '0'){
        //nenhum usuario foi encontrado
    }else{
        //Usuario encontrado
        //Você pode dar um fetch alguma coisa aqui para ver se ele está ou nao bloqueado;
        //E daqui mesmo da classe jogar os dados para dentro de uma sessao com o nome dele
        //e retornar true caso esteja tudo bem e redirecionar para a pagina de acesso.
    return true;
    }       
}
}
    
03.06.2016 / 13:42