Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

josenilson

Consulta SQL + PDO

Recommended Posts

Olá para todos!

 

estou criando uma pagina bem simples de login autenticando pelo banco de dados, estou utilizando como conexão o PDO

ate ai tudo bem uso como padrão para me conectar ao banco o seguinte algorítimo.

 

$pdo = new PDO('mysql:host=localhost;dbname=nome do banco de dados', "root","" );

 

o que estou com dificuldade para fazer é o seguinte:

tenho um formulário HTML esse form manda os dados via post para uma determinada pagina exemplo verifica.php

nesta pagina estou com o seguinte algorítimo.

 

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<?php
$login = $_POST['login'];
$senha = $_POST['senha'];
include "conexao.php";
$pdo = new PDO('mysql:host=localhost;dbname=sistema', "root","" );
if($conn == $login){
echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=formulario_login.html'>
<script type=\"text/javascript\">
alert(\"O nome de usuario nao corresponde.\");
</script>";
}else{
if($senha != $senha){//confere senha
echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=formulario_login.html'>
<script type=\"text/javascript\">
alert(\"A senha não corresponde.\");
</script>";
}else{
session_start();
$_SESSION['login_usuario'] = $login;
$_SESSION['senha_usuario'] = $senha;
header('Location: desktop.php');
}
}
?>
Como notado no algorítimo só tem a parte de conexão com o banco, oque estou tentando fazer é, quando o usuário inserir dos dados no formulário seja feita uma verificação de que os dados realmente existem no banco como uma condição
se (dados confere )ok prossiga se não mensagem de aviso, algo desse tipo, porem não sei como se constrói o consulta sql query com o pdo para realizar essa verificação.
deis de já agradeço por me ajudar se possível peço que como exemplo mostre a resolução aplicada nesse código que criei pois sou iniciante em php e com o script já familiar sera melhor interpretado .
aff josenilson pereira

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com essa função:

 

você só procisa criar uma pasta com o nome:

 

login.class.php;

 

e chamar a função;

 

<?php class Login extends BD{
private $prefixo = 'media_';
private $tabela = 'usuarios';
private $email;
private $senha;
public function setUsuario($mail){
$this->usuario = $mail;
}
private function getEmail(){
return $this->email;
}
private function setSenha($pass){
$this->senha = $pass;
}
private function getSenha(){
return $this->senha;
}
private function validar(){
$strSQL = "SELECT * FROM ".$this->tabela." WHERE email_log = ? AND senha_log = ?";
$stmt = self::conn()->prepare($strSQL);
$stmt->execute(array($this->getEmail(), $this->getSenha()));
return ($stmt->rowCount() > 0) ? true : false;
}
public function logar(){
if($this->validar()){
$atualizar = self::conn()->prepare("UPDATE ".$this->tabela."SET data_log = NOW() WHERE email = ? AND senha = ?");
$atualizar->execute(array($this->getEmail(), $this->getSenha()));
$_SESSION[$this->prefixo.'emailLog'] = $this->getEmail();
$_SESSION[$this->prefixo.'senhaLog'] = $this->getSenha();
return true;
}else{
return FALSE;
}
}
public function isLogado(){
if(isset($_SESSION[$this->prefixo.'emailLog'], $_SESSION[$this->prefixo.'senhaLog'])){
return true;
}else{
return FALSE;
}
}
public function deslogar(){
if($this->isLogado()){
unset($_SESSION[$this->prefixo.'emailLog']);
unset($_SESSION[$this->prefixo.'senhaLog']);
return TRUE;
}else{
return false;
}
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu quase esquice isso também é necessário:

 

if(isset($_POST['acao']) && $_POST['acao'] == 'logar'){
$usuario = strip_tags(filter_input(INPUT_POST, 'usuario'));
$senha = strip_tags(filter_input(INPUT_POST, 'senha'));
if($usuario == '' || $senha == ''){echo '<script>alert("Preencha todos os campos")</script>';}else{
$login->setUsuario($usuario);
$login->setSenha($senha);
if($login->logar()){
if($login->isLogado()){
$strSql1 = "SELECT * FROM usuarios WHERE usuario_log = ? AND senha_log = ?";
$stmt1 = BD::conn()->prepare($strSql1);
$stmt1->execute(array($_SESSION['cli_usuarioLog'],$_SESSION['cli_senhaLog']));
$categ =$stmt1->fetchObject();
echo '<script>alert("Login efetuado!"); location.href="'.PATH.'/cliente/"</script>';
}else{
echo '<script>alert("Usuario não encontrado!"); location.href="'.PATH.'/"</script>';
}
}
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom agradeço muito a ajuda e a atenção que esta dando gedmilson

porem como estou iniciando em php isso tá me deixando confuso poderia explicar mostrando isso aplicado no meu script.

se possível agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por Luiz Henrique
      Olá,
       
      Preciso fazer uma inserção no DB de registros referente a pagamentos, quando for no crédito será realizado o insert com sua respectiva data de compensação e valor da parcela exemplo:
       3 parcelas de 100.00 e cada registro em seu devido mês:
      INSERT INTO tabela (valor, data) VALUES (100, 2022-08-17),(100, 2022-09-17),(100, 2022-10-17) É mais eficiente fazer da forma acima ou colocar 3 INSERT?
      Ou existe forma melhor de fazer isso?
       
      Obrigado.,
       
    • Por Marcones Borges
      Olá, estou precisando de uma ajuda...
       
      Tenho duas tabelas
      ministros
      entradas
       
      Preciso exibir a lista dos ministros que não contam no relatório gerado em entradas.
       
      Fiz assim a combinação.
       

      $sql = "SELECT ministro.id, ministro.area, entrada.beneficiario, entrada.id_benificiario, entrada.id_benificiario, entrada.tipo_lancamento FROM ministro INNER JOIN entrada ON ministro.id = entrada.id_benificiario WHERE ministro.area = entrada.area_beneficiario AND ministro.nome = entrada.beneficiario AND entrada.id_benificiario='[{$id_exer}' AND entrada.tipo_lancamento='ministro'  "; $stm = $conexao->prepare($sql); $stm->execute(); $clientes = $stm->fetchAll(PDO::FETCH_OBJ);
       
      Fiz as combinações direitinho mais não consigui exbir os que estão na tabela ministro e não estão na tabela entrada.
    • Por Marcones Borges
      Olá, sou iniciante em php, estou tentando migrar um código de php 5.6 para pdo mais da erro, não roda....
      Alguém pode me ajudar?

      include '../Connections/functions.php';           function montaSelect()         {  $sql = "SELECT * FROM membros"; $result = $con->query($sql); if ($result->num_rows > 0 )  {   while($dados = $result->fetch_assoc())   {   $opt .= '<option value="'.$dados['id'].'">'.$dados['nome'].'</option>';   } } else {           $opt = '<option value="0">Nenhum Membro cadastrado</option>';     return $opt; }         }
       
      Este era o código original:
       

      // require 'topof.php'; // echo $usuario;         /**          * função que retorna o select          */         function montaSelect()         {                 $sql = "SELECT id, nome FROM membros '";                 $query = mysql_query( $sql );                 if( mysql_num_rows( $query ) > 0 )                 {                         while( $dados = mysql_fetch_assoc( $query ) )                         {                                 $opt .= '<option value="'.$dados['id'].'">'.$dados['nome'].'</option>';                         }                 }                 else                         $opt = '<option value="0">Nenhum Membro cadastrado</option>';                 return $opt;         }
    • Por Sapinn
      Recentemente, o seguinte erro estava aparecendo em meu site 'max_user_connections', depois de muitas pesquisas descobri que o problema era devido a uma conexão persistente de banco de dados, então o removi do meu código e funcionou. Outro problema surgiu agora, meu lastInsertId () está retornando 0. Quando eu uso a conexão persistente, ele funciona se eu removê-lo, ele falha. Eu nem sei mais o que fazer. Vou deixar as partes mais importantes do meu código aqui:
      Conexão:
      public function __construct()     {         $dsn = 'mysql:host='.$this->host.';dbname='.$this->bank;            try {             $this->dbh = new PDO($dsn,$this->user,$this->password);             $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);                               } catch (PDOException $e) {             print "Error!: " . $e->getMessage() . "<br/>";             die();         }               }     public function lastId Inserted(){         return $this->dbh->lastInsertId();     }  
      Pesquisando pelo último Id:
       
       if($this->saleModel->store($data)):                             $sale_id = $this->db->lastId Inserted();                                                         $data['sale_id'] = $sale_id;                             $this->sellModel->sellProduct($data);                             $total = $stock->quant_product - $data['quant_sale'];                             $this->ProductModel->decreaseSales($data['product_id'],$total);                             Url::redirect('sales/sellProducts/'.$sale_id.'');                         endif;  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.