Mysql does not log with Prepared Statement

Asked

Viewed 29 times

2

This code should redirect the user from the login page to the menu. However, after changing a simple query to a prepared statement, I can’t log in anymore, because $quant always returns empty. Some light?

<?php
session_start();
include 'config.php';
$con = conectar();

$usuario= $_POST['usuario'];
$senha= $_POST['senha'];

$sql = "SELECT * FROM adm WHERE usuario LIKE ? AND senha = ?";
$stmt= mysqli_prepare($con,$sql);

mysqli_stmt_bind_param($stmt, 'ss', $usuario, $senha);

mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);

$reg = mysqli_stmt_fetch($stmt);
$quant = mysqli_stmt_num_rows($stmt);

mysqli_stmt_close($stmt);

if($quant!=0) {
    $_SESSION['codigo'] = $reg['cod_adm'];
    $_SESSION['usuario'] = $reg['usuario'];
    $_SESSION['senha'] = $reg['senha'];
    $_SESSION['tipo'] = 'adm';
    header('location:menu.php');
} 

else{
    $sql = "SELECT * FROM comum WHERE usuario LIKE ? AND senha = ?";
    $stmt = mysqli_prepare($con,$sql);

    mysqli_stmt_bind_param($stmt, 'ss', $usuario, $senha);

    mysqli_stmt_execute($stmt);
    mysqli_stmt_store_result($stmt);

    $reg = mysqli_stmt_fetch($stmt);
    $quant = (mysqli_stmt_num_rows($stmt));

    mysqli_stmt_close($stmt);

    if ($quant==0){
        echo "<center>
            <h2>
                <b>Login ou senha inválidos!</b>
            </h2>
        </center>";
        echo "<center>
            <a href='../home.html' class='voltar'>
                <span><b>Voltar</b></span>
            </a>
        </center>";
    }

    else {
        $_SESSION['codigo'] = $reg['cod_comum'];
        $_SESSION['usuario'] = $reg['usuario'];
        $_SESSION['senha'] = $reg['senha'];
        $_SESSION['tipo'] = 'comum';
        header('location:menu.php');
    } 
}?>
  • pq uses like to find the user name?

  • was 'indifferent' when writing, using = or like, then we’ll leave it at that

  • Have you tried running this user query directly in the database? It returns some result?

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.