Estoy enfrentando el problema para mi página de inicio de sesión. Incluso después de ingresar el nombre de usuario y la contraseña correctos, no está redirigiendo a mi página de inicio (index.php).

Index.php:

<?php 
  if (!isset($_SESSION['login_username']))
   {
    $_SESSION['msg'] = "You must log in first";
    header('location: login.php');
  }

  if (isset($_GET['logout'])) 
  {
    session_destroy();
    unset($_SESSION['login_username']);
    header("location:login.php");
  }

?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div class="content">
    <?php if(isset($_SESSION['success'])): ?>
      <div class="error success"> 
        <h3>
          <?php 
            echo $_SESSION['success'];
            unset ($_SESSION['success']);
          ?>
        </h3>
      </div>
    <?php endif ?>

    <?php if (isset($_SESSION["login_username"])): ?>
  <p>Welcome <strong><?php echo $_SESSION['login_username']?></strong></p>
  <p><a href="index.php?logout='1'" style="color: red;">Logout</a></p>
<?php endif ?>
</body>
</html>

Login.php:

<?php include('connect.php')?>

<!DOCTYPE html>
<html>
    <head>

    </head>

    <body>
        <div class="header">
            <h2>ADMIN LOGIN</h2>
        </div>

        <form method="post" action="login.php" name ="login">

            <div class="input-group">
                <label>UserName</label>
                    <input type="varchar" required="required" name="login_username">
            </div>

            <div class="input-group">
                <label>Password</label>
                    <input type="password" required="required" name="login_password" >
            </div>

            <div class="input-group">
                <button type="submit" class="btn" name="submit_login">login</button>
            </div>

        </form>
    </body>
</html>

Connect.php:

<!DOCTYPE html>
<html>
<head>
</head>
<body>

<?php


$username= "root";
$password = "";

$errors = array();

$db=mysqli_connect('localhost','root','','db1');


if (isset($_POST['submit_login'])) 
    {
      $login_username = mysqli_real_escape_string($db, $_POST['login_username']);
      $login_password = mysqli_real_escape_string($db, $_POST['login_password']);
  $sql = "SELECT * FROM login_details WHERE login_username='$login_username' AND login_password='$login_password'";

        $result = $db->query($sql);


        if ($result->num_rows == 1) 
        {
          $_SESSION['login_username'] = $login_username;
          $_SESSION['success'] = "You are now logged in";

          Header( 'Location: index.php' );
        }
        else 
        {
            echo "Wrong username/password combination";
        }
}
</body>
</html>

Todo lo demás está funcionando bien, como cuando se muestra la combinación de nombre de usuario / contraseña incorrectas, se muestra el MSG, pero cuando se usa la combinación correcta, no ocurre nada.

-1
Mohit Parekh 27 jun. 2019 a las 11:19

1 respuesta

La mejor respuesta

Usted está comprobando para $_SESSION["username"] en index.php, sin embargo, en connect.php está configurando $_SESSION['login_username']

Cambiar $_SESSION['login_username'] a $_SESSION['username']

1
catcon 27 jun. 2019 a las 08:33