0

I'm trying to display "active" or "inactive" when a user login with session start with php and mysql. The problem is that even when I try to login with an account that has an "inactive" state, it keeps showing me that is "active". I already added session_start(); on the start of the page.

Here's a part of my login code:


$sql = "SELECT * FROM `users_tmp` WHERE uidUsers=? OR emailUsers=?;";
$stmt = mysqli_stmt_init($conn);

if (!mysqli_stmt_prepare($stmt, $sql)){

    header("Location: ..index.php?error=sqlerror");
    exit();
}
else {
    mysqli_stmt_bind_param($stmt, "ss", $mailuid, $password);
    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt);

    if ($row = mysqli_fetch_assoc($result)) {
        $pwdCheck = $row['pwdUsers'];
        if($pwdCheck == false){
            header("Location: ../index.php?error=wrongpwd");
            exit();
        } else if ($pwdCheck == true) {
            session_start();
            $_SESSION['userId'] = $row['idTmp'];

            $_SESSION['idTmp'] = $row['idTmp'];
            $_SESSION['stateUser'] = $row['stateUser'];

            header("Location: ../user/perfil.php?login=success");
            exit();
        }

    }
    else{
        header("Location: ../index.php?error=wrongpwds");
        exit();
    }

And here's what I'm trying to display:

<?php if(isset($_SESSION['idTmp']) ){

  $state = $_SESSION['stateUser'];
    if($state = "Active"){

    echo $state;}

    elseif($state = "Inactive"){

echo $state ;}

}
else{echo'nothing';}?>

1 Answers1

0

$state = "Active" is always true, you need to use == operator instead, in the if.

Amir MB
  • 3,233
  • 2
  • 10
  • 16