dr.x 1 Denunciar post Postado Abril 20, 2015 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
Williams Duarte 431 Denunciar post Postado Abril 20, 2015 $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
dr.x 1 Denunciar post Postado Abril 20, 2015 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
Eisenheim 67 Denunciar post Postado Abril 21, 2015 Olá amigos! Referente a instalação, experimente a explicação desse link Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Abril 21, 2015 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