In what ways can PHP scripts handle user authentication and access control for specific content, such as images, in a web application?

PHP scripts can handle user authentication and access control for specific content, such as images, by checking if the user is logged in and authorized to view the content. This can be done by storing user credentials in a session variable and verifying them against a database. Additionally, access control can be implemented by checking the user's role or permissions before serving the content.

<?php
session_start();

// Check if user is logged in
if(!isset($_SESSION['user_id'])) {
    header("Location: login.php");
    exit;
}

// Check if user has permission to view the image
$user_id = $_SESSION['user_id'];
$image_id = $_GET['image_id'];

// Query database to check user's permission for the image
// Assume $db is the database connection
$query = "SELECT * FROM images WHERE id = $image_id AND user_id = $user_id";
$result = mysqli_query($db, $query);

if(mysqli_num_rows($result) == 0) {
    echo "You do not have permission to view this image.";
    exit;
}

// Serve the image content
// Assume $image_path is the path to the image file
header("Content-Type: image/jpeg");
readfile($image_path);
?>