PHP

Clear Cache After Logout in PHP | Prevent going to back after logout in PHP

Ravindra Kumar

One of the most common issues developers face when building a login system in PHP is users being able to press the back button after logging out and still seeing the dashboard or other protected pages. This happens because browsers often cache pages, so even without an active session, the back button shows the previously loaded page.

In this article, we’ll look at why this happens and how to fix it properly using PHP.

Why Does This Happen?

When a user logs into your application, session variables are created to keep them authenticated. After logging out, these session variables are destroyed.

However, when the user presses the back button, the browser may load the cached version of the page instead of checking the session. This creates the illusion that the user can still access the dashboard, even though the session is gone.

1. Destroy Session on Logout

Always destroy the session completely during logout.


<?php
session_start();
session_unset();
session_destroy();

// Redirect to dashboard page
header("Location: dashboard.php"); // give your file address which have code to clear cache
exit();
?>

2. Prevent Browser Caching on Protected Pages

On sensitive pages like dashboard.php, add headers at the top to prevent caching:


<?php
session_start();

header("Cache-Control: no-cache, no-store, max-age=0, must-revalidate");
header("Pragma: no-cache");
header("Expires: Sun, 01 Jan 1990 00:00:00 GMT");

// Redirect if not logged in
if (!isset($_SESSION['user_id'])) {

echo "<script>window.location.href='../login.php';</script>";
exit();
}
?>

Conclusion

Preventing users from accessing pages after logout in PHP requires both session handling and cache control. By implementing the above methods, you ensure that your application is secure and that sensitive data is not exposed when a logged-out user presses the back button.

With these simple steps, you can create a more secure and user-friendly login system in PHP.

Ravindra Kumar

Ravindra is a passionate full stack developer and dedicated blogger with a flair for crafting user-friendly web applications and insightful articles. With expertise spanning front-end and back-end technologies, Ravindra brings ideas to life through innovative coding solutions.

Suggested Reading

How to Create a Simple Login System in PHP

A login system is one of the most essential features of any website or web application. Whether it’s an e-commerce site, a blogging platform, or an internal company portal, user authentication ensures that only authorized users can access specific areas. In this article, we’ll walk through creating a simple login system in PHP using MySQL. […]

How to Create a PHP Registration Form with Gmail SMTP Email Confirmation

Building a secure and user-friendly registration system is one of the most common requirements in web development. In this tutorial, we’ll create a registration form in PHP that: Accepts username, email, and password Validates for unique username and email Stores passwords in a secure hashed format Sends a confirmation email using Gmail SMTP with PHPMailer […]

PHP Login Dashboard Template with Bootstrap Free Download

A secure and stylish login dashboard is one of the most essential components of any web application. Whether you’re building an admin panel, school management system, e-commerce backend, or a personal project, having a professional login system with a responsive dashboard can save you both time and effort. In this article, we’ll discuss how you […]

How to send emails by Gmail SMTP Emails in PHP

I’ll show you how to make this Bootstrap form send emails using SMTP. We’ll do this in PHP with PHPMailer, because: It’s reliable Supports SMTP authentication Works with Gmail, Outlook, and custom mail servers Install PHPMailer You can either: Via Composer (recommended) composer require phpmailer/phpmailer Or download from: PHPMailer GitHub and include it manually. HTML […]

How to Create Your Own CAPTCHA (Number Addition) with Form in PHP

CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) is a simple security mechanism used to prevent automated bots from submitting forms on your website. While there are third-party CAPTCHA services like Google reCAPTCHA, creating a basic number-based CAPTCHA using PHP can be an effective and lightweight solution for small projects. In […]

How to increase phpmyadmin import file size in xampp localhost

To increase the PHPMyAdmin import file size in XAMPP on your localhost, follow these steps: Step 1: Modify php.ini Open XAMPP Control Panel. Click Config next to Apache and select PHP (php.ini). Find and update the following values: upload_max_filesize = 100M post_max_size = 100M memory_limit = 256M max_execution_time = 300 max_input_time = 300 (You can […]