Variavel da database nunca é igual a inserida
Olá, estou tentando fazer um sistema de login :D
Porém a variável email da tabela users NUNCA é igual à variavel email inserida pelo usuario :( mesmo que a inserida seja igual
Eu consegui fazer um sistema sem muita criptografia, porem quando fui melhor esse cheguei nesse ponto onde não saio do lugar :(
Segue a pagina de formulario login (apenas a parte util)
Agora segue a pagina de verificação php
Porém a variável email da tabela users NUNCA é igual à variavel email inserida pelo usuario :( mesmo que a inserida seja igual
Eu consegui fazer um sistema sem muita criptografia, porem quando fui melhor esse cheguei nesse ponto onde não saio do lugar :(
Segue a pagina de formulario login (apenas a parte util)
<?php session_start(); include_once '/lib/Facebook/face.php'; //hashaleatorio $escondido = rand(1, 1000000); if(!isset($_SESSION)){ session_start(); } $_SESSION['escondido'] = $escondido; if(isset($_SESSION['msg'])){ $messagei = $_SESSION['msg']; $mesasge = '<div class="sufee-alert alert with-close alert-danger alert-dismissible fade show"> <span class="badge badge-pill badge-danger">ERROR:</span> '. $messagei .' <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div>'; unset($_SESSION['msg']); } ?> <html><body> <form action="logar.php" method="post"> <div class="form-group"> <?php echo $mesasge; ?> <label>Email address</label> <input name="email" type="email" class="form-control" placeholder="Email"> </div> <div class="form-group"> <label>Password</label> <input name="senha" type="password" class="form-control" placeholder="Password"> </div> <div class="checkbox"> <label> <input type="checkbox"> Remember Me <input type=hidden name=escondido value="<?php echo $escondido; ?>"> <input type=hidden name=btnLogin value="022"> </label> <label class="pull-right"> <a href="../xhkinvest/forgot/">Forgotten Password?</a> </label> </div> <input type="submit" name="btnLogin" class="btn btn-success btn-flat m-b-30 m-t-30" value="Sign in"> <div class="social-login-content"> <div class="social-button"> <button type="button" onclick="window.location.href='<?php echo $loginUrl; ?>'" class="btn social facebook btn-flat btn-addon mb-3"><i class="ti-facebook"></i>Sign in with facebook</button> <button type="button" class="btn social twitter btn-flat btn-addon mt-2"><i class="ti-twitter"></i>Sign in with twitter</button> </div> </div> <div class="register-link m-t-15 text-center"> <p>Don't have account ? <a href="../xhkinvest/register/"> Sign Up Here</a></p> </div> </form></body></html>
Agora segue a pagina de verificação php
<?php session_start(); include('/assets/css/conexao.php'); $btnLogin = filter_input(INPUT_POST, 'btnLogin', FILTER_SANITIZE_STRING); if($btnLogin){ $emaili = $_POST['email']; if ( !filter_var( $emaili, FILTER_VALIDATE_EMAIL ) ) { $_SESSION['msg'] == "Email inválido"; header('Location: ../xhkinvest/index.php'); }else{ $email= $emaili; // antes eu simplesmente fazia $email= filter_input(INPUT_POST, 'email', FILTER_SANITIZE_STRING);, porem tambem não obtinha sucesso $escondidoi = filter_input(INPUT_POST, 'escondido', FILTER_SANITIZE_STRING); $senhai = filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_STRING); if ($_SESSION['escondido'] != $escondido) { $_SESSION['msg'] == "Não acha que estas muito apressadinho??"; header('Location: ../xhkinvest/index.php'); }else { //coletou dados if((!empty($email)) AND (!empty($senha)) AND (!empty($escondido)) AND (!empty($_SESSION['escondido']))){ //SE FOR VAZIO //echo password_hash($senha, PASSWORD_DEFAULT); //Pesquisar o usuário no BD $result_usuario = "SELECT id, email, senha FROM user WHERE email = '$email'"; $resultado_usuario = "mysqli_query($conn, $result_usuario)"; if($resultado_usuario){ if($row_usuario['email'] != $email){ $_SESSION['msg'] = "Email não cadastrado :("; header("Location: index.php"); }else{ $row_usuario = mysqli_fetch_assoc($resultado_usuario); if(password_verify($senha, $row_usuario['senha'])){ $_SESSION['id'] = $row_usuario['id']; $_SESSION['nome'] = $row_usuario['nome']; $_SESSION['email'] = $row_usuario['email']; header("Location: administrativo.php"); }else{ $senhafinal = password_hash($senha, PASSWORD_DEFAULT); $_SESSION['msg'] = $row_usuario['nome']; header("Location: index.php"); }} }else{ $_SESSION['msg'] = "O email ou a senha inseridos estão incorretos"; header("Location: index.php"); } }else { $_SESSION['msg'] == "Não pode deixar nenhum campo em branco"; header("Location: index.php"); } } } }else{ $_SESSION['msg'] == "Não acha que está muito apressadinho?"; header("Location: index.php"); } ?>
Leonardo
Curtidas 0
Respostas
Leonardo
01/12/2018
algum help?
GOSTEI 0
Alex William
01/12/2018
$btnLogin = filter_input(INPUT_POST, 'btnLogin', FILTER_SANITIZE_STRING); if($btnLogin){ //Aqui voce seta a emaili do POST $emaili = $_POST['email']; if ( !filter_var( $emaili, FILTER_VALIDATE_EMAIL ) ) { $_SESSION['msg'] == "Email inválido"; header('Location: ../xhkinvest/index.php'); }else{ //Aqui voce seta a email da emaili, mas emaili não esta setada, logo email receberá valor vazio $email= $emaili; //resto da app }
Acredito que este seja seu problema. :D
P.S.: Acredito que seja questão antiga, mas respondi mesmo assim
GOSTEI 0
Alex William
01/12/2018
$btnLogin = filter_input(INPUT_POST, 'btnLogin', FILTER_SANITIZE_STRING); if($btnLogin){ //Aqui voce seta a emaili do POST $emaili = $_POST['email']; if ( !filter_var( $emaili, FILTER_VALIDATE_EMAIL ) ) { $_SESSION['msg'] == "Email inválido"; header('Location: ../xhkinvest/index.php'); }else{ //Aqui voce seta a email da emaili, mas emaili não esta setada, logo email receberá valor vazio $email= $emaili; //resto da app }
Acredito que este seja seu problema. :D
P.S.: Acredito que seja questão antiga, mas respondi mesmo assim
Desculpe, confundi a identação do fórum!! Malz ai
GOSTEI 0
Alex William
01/12/2018
//Seta e executa a query $result_usuario = "SELECT id, email, senha FROM user WHERE email = '$email'"; $resultado_usuario = "mysqli_query($conn, $result_usuario)"; if($resultado_usuario){ // Onde $row_usuario esta setada? if($row_usuario['email'] != $email){ $_SESSION['msg'] = "Email não cadastrado :("; header("Location: index.php"); }else{ $row_usuario = mysqli_fetch_assoc($resultado_usuario); if(password_verify($senha, $row_usuario['senha'])){ $_SESSION['id'] = $row_usuario['id']; $_SESSION['nome'] = $row_usuario['nome']; $_SESSION['email'] = $row_usuario['email']; header("Location: administrativo.php"); }else{ $senhafinal = password_hash($senha, PASSWORD_DEFAULT); $_SESSION['msg'] = $row_usuario['nome']; header("Location: index.php"); } } }
Acho que voce esta testando $row_usuario sem ela estar setada.
GOSTEI 0