Ir para conteúdo

POWERED BY:

Arquivado

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

dr.x

Pdo

Recommended Posts

Olá pessoal !

 

Atendendo ao conselhos dos mais sábios, estou incrementando o código.

 

PDO realmente é muito mais simples e seguro. Porém ainda tenho muito o que aprender. Já que sou novo em php, quero começar de forma correta e não já ultrapassado, com o perdão e o respeito da palavra.

 

Como ficaria em PDO esse código MySql, só para clarear mais ainda o meu aprendizado ?

 

 

<?php
session_start();


require_once "conexao.php";


if(isset($_SESSION['userLog'])){
   header("Location:painel.php");
   die();
    }
?>


<?php


    if(isset($_POST['acessar'])){
   $usuario   = mysql_real_escape_string(strip_tags(trim($_POST['usuario'])));
        $senha   = mysql_real_escape_string(strip_tags(trim($_POST['senha'])));
        $lembrar = (isset($_POST['lembrar'])) ?  true : false;




    if(empty($usuario) && empty($senha))
           echo 'Informe seu login e sua senha!';
   else if (empty($usuario))
           echo 'Informe seu login!';
        else if (empty($senha))
           echo 'Informe sua senha!';
   //se campos preenchidos...
else {
   //verifica login   
$query  = mysql_query("SELECT usuario FROM usuarios WHERE usuario = '$usuario' LIMIT 1") or die(mysql_error());
$checkLogin = mysql_num_rows($query); 
        
        //verifica senha
$query   = mysql_query("SELECT * FROM  usuarios WHERE usuario = '$usuario' AND  senha = '$senha' LIMIT 1") or
 die(mysql_error());
$checkPass = mysql_num_rows($query);




           $infoUser = mysql_fetch_assoc($query);


           $_SESSION['userLog']  = true;
           $_SESSION['userInfo'] = array(
       'nome'  => base64_encode($infoUser['nome']),
                'usuario' => base64_encode($infoUser['usuario']),
                'senha' =>  base64_encode($infoUser['senha'])
           );
         
           if($lembrar){
               setcookie('lembrar', true, time() + 3600 * 24 * 30, '/');
               setcookie('lembrar-login', base64_encode($usuario), time() + 3600 * 24 * 30, '/');
               setcookie('lembrar-senha', base64_encode($senha), time() + 3600 * 24 * 30, '/');
          }
 else{
               setcookie('lembrar', '', time() - 3600 * 24 * 30, '/');
               setcookie('lembrar-login', '', time() - 3600 * 24 * 30, '/');
               setcookie('lembrar-senha', '', time() - 3600 * 24 * 30, '/'); 
               }


               if(isset($_SESSION['userLog']))  
                    header("location:painel.php");
               else
                    echo 'Desculpe, ocorreu um erro...';            
          
          }
      


        echo '<hr size="1" color="#dfdfdf">';
     }
?> 
Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

		
$usuario = filter_var(trim($_POST['usuario']), FILTER_SANITIZE_STRING);
$senha = filter_var(trim($_POST['senha']), FILTER_SANITIZE_STRING);

$lembrar = (isset($_POST['lembrar'])) ?  true : false;



if(empty($usuario) && empty($senha))
	   echo 'Informe seu login e sua senha!';
else if (empty($usuario))
	   echo 'Informe seu login!';
	else if (empty($senha))
	   echo 'Informe sua senha!';
//se campos preenchidos...



$sql = "SELECT * FROM  usuarios WHERE usuario = :usuario AND senha = :senha' LIMIT 1";

$stmt = $conn->prepare($sql);
$stmt->bindParam(':usuario', $usuario, PDO::PARAM_STR);
$stmt->bindParam(':senha', $senha, PDO::PARAM_STR);
$stmt->execute();

if ($stmt->rowCount() > 0 ) {

$obj = $this->stmt->fetch( PDO::FETCH_OBJ );

var_dump($obj);

}	

$stmt->closeCursor();

Conexao

 

 

<?php
$conn = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Williams.

 

Estou testando porém sem sucesso. Dá um monte de erro. Eu instalei o wampserver 2.5 ontem.

 

Será que tenho de configurar mais alguma coisa ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma dica é trabalhar com Exception Nativas

try {
        
} catch (Exception $e) {

}
try {

    $usuario = filter_var(trim($_POST['usuario']), FILTER_SANITIZE_STRING);
    $senha = filter_var(trim($_POST['senha']), FILTER_SANITIZE_STRING);

    if (empty($usuario) && empty($senha)) {
        throw new Exception("Informe seu login e sua senha!", 1);    
    }

    if (empty($usuario) && empty($senha)) {
        throw new Exception("Informe seu login!", 1);    
    }

    if (empty($senha)) {
        throw new Exception("Informe sua senha!", 1);    
    }

    $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //Em caso de erro dispara a Exception dentro no Bloco catch

    $sql = "SELECT * FROM  usuarios WHERE usuario = :usuario AND senha = :senha LIMIT 1";

    $stmt = $conn->prepare($sql);
    $stmt->bindParam(':usuario', $usuario, PDO::PARAM_STR);
    $stmt->bindParam(':senha', $senha, PDO::PARAM_STR);
    $stmt->execute();

    if ($stmt->rowCount() > 0 ) {

    $obj = $this->stmt->fetch( PDO::FETCH_OBJ );

        var_dump($obj);

    }   

    $stmt->closeCursor();
        
    
} catch (Exception $e) {

    echo 'Error: '. $e->getMessage();
    
}

Qualquer dúvida não deixe perguntar! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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