Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to prevent browser from going back to login form page once user is logged in?

Tags:

php

session

I'm trying to make a website in which the admin can upload books through an admin portal. I've made a successful login but when the user gets logged in and presses the back button (on the browser) the form page appears again, and the same happens when they log out and press back button, the page that should appear only appears after they login again. I searched a lot on the internet but all in vain. Please make a suggestion about it.

<?php

session_start();

$username = $_POST['username'];
$password = $_POST['password'];

if ($username && $password) {
    $connect = mysqli_connect("localhost", "root", "") or die ("Could'nt connect to database!"); //database connection
    mysqli_select_db($connect, "mahmood_faridi") or die ("Could'nt find database");
    $query   = ("SELECT * FROM user WHERE username= '$username'");
    $result  = mysqli_query($connect, $query);
    $numrows = mysqli_num_rows($result);

    if ($numrows !== 0) {
        while ($row = mysqli_fetch_assoc($result)) {
            $dbusername = $row['username'];
            $dbpassword = $row['password'];
        }
        if ($username == $dbusername && $password == $dbpassword) {
            $_SESSION['username'] = $username;
            $_SESSION['password'] = $password;
            header('location: help.php'); //another file to send request to the next page if values are correct.

            exit();
        } else {
            echo "Password Incorrect";
        }
        exit();
    } else {
        die("That user doesn't exists!");
    }
} else {
    die("Please enter a username and password");
}
?>
like image 831
Haris Avatar asked Nov 24 '25 08:11

Haris


1 Answers

On the login screen, in PHP, before rendering the view, you need to check if the user is already logged in, and redirect to the default page the user should see after logged in.

Similarly, on the screens requiring login, you need to check if the user is not logged in and if not, redirect them to the login screen.

// on login screen, redirect to dashboard if already logged in
if(isset($_SESSION['username'])){
    header('location:dashboard.php');
}


// on all screens requiring login, redirect if NOT logged in
if(!isset($_SESSION['username'])){
    header('location:login.php');
}
like image 75
sbecker Avatar answered Nov 26 '25 22:11

sbecker



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!