Fórum Variavel da database nunca é igual a inserida #598936
01/12/2018
0
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
Curtir tópico
+ 0Posts
01/12/2018
Leonardo
Gostei + 0
23/01/2019
Alex William
$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
23/01/2019
Alex William
$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
23/01/2019
Alex William
//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
Clique aqui para fazer login e interagir na Comunidade :)