How can one prevent a user from voting on the same image more than once in a PHP-based image voting portal?

To prevent a user from voting on the same image more than once in a PHP-based image voting portal, you can track the user's votes in a database table. When a user tries to vote on an image, you can check if they have already voted on that image before allowing the vote to be submitted.

// Assuming you have a database connection established

// Check if the user has already voted on the image
$user_id = $_SESSION['user_id']; // Assuming user is logged in
$image_id = $_POST['image_id']; // Assuming image_id is submitted via POST

$query = "SELECT * FROM votes WHERE user_id = $user_id AND image_id = $image_id";
$result = mysqli_query($connection, $query);

if(mysqli_num_rows($result) == 0) {
    // User has not voted on this image before, allow the vote to be submitted
    // Insert the user's vote into the database
    $insert_query = "INSERT INTO votes (user_id, image_id) VALUES ($user_id, $image_id)";
    mysqli_query($connection, $insert_query);
    // Handle the vote submission
} else {
    // User has already voted on this image, handle the error or display a message
}