How can the PHP script be improved to prevent users from bypassing the restriction on rating someone multiple times, as reported in the forum thread?

Issue: The current PHP script allows users to bypass the restriction on rating someone multiple times by submitting multiple requests. To prevent this, we can implement a check to ensure that a user can only rate someone once by storing the user's rating in a database and checking if they have already rated the person before allowing them to submit a new rating.

// Check if the user has already rated the person before allowing them to submit a new rating
if(isset($_POST['rate']) && isset($_POST['person_id']) && isset($_SESSION['user_id'])) {
    $user_id = $_SESSION['user_id'];
    $person_id = $_POST['person_id'];

    // Check if the user has already rated the person
    $query = "SELECT * FROM ratings WHERE user_id = $user_id AND person_id = $person_id";
    $result = mysqli_query($conn, $query);

    if(mysqli_num_rows($result) == 0) {
        // User has not rated the person before, allow them to submit the rating
        $rating = $_POST['rate'];
        // Save the rating in the database
        $insert_query = "INSERT INTO ratings (user_id, person_id, rating) VALUES ($user_id, $person_id, $rating)";
        mysqli_query($conn, $insert_query);
        echo "Rating submitted successfully!";
    } else {
        echo "You have already rated this person!";
    }
}