Are there any best practices or guidelines for implementing a user rating system in PHP to ensure a positive user experience?

Issue: When implementing a user rating system in PHP, it is important to ensure a positive user experience by following best practices such as preventing duplicate ratings, validating user input, and displaying ratings effectively.

// Code snippet for implementing a user rating system in PHP

// Validate user input
$rating = $_POST['rating'];
if ($rating < 1 || $rating > 5) {
    echo "Invalid rating. Please select a rating between 1 and 5.";
    exit;
}

// Prevent duplicate ratings
$user_id = $_SESSION['user_id'];
$check_rating_query = "SELECT * FROM ratings WHERE user_id = $user_id AND item_id = $item_id";
$check_rating_result = mysqli_query($conn, $check_rating_query);
if (mysqli_num_rows($check_rating_result) > 0) {
    echo "You have already rated this item.";
    exit;
}

// Insert rating into database
$insert_rating_query = "INSERT INTO ratings (user_id, item_id, rating) VALUES ($user_id, $item_id, $rating)";
mysqli_query($conn, $insert_rating_query);

echo "Thank you for your rating!";