What are the potential pitfalls of setting up a counter via email in PHP?

One potential pitfall of setting up a counter via email in PHP is that it can be prone to manipulation by malicious users. To prevent this, you can implement server-side validation to ensure that the counter is only incremented once per unique email address.

<?php

// Check if email address has already incremented the counter
$email = $_POST['email'];

// Connect to database
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "counter_db";

$conn = new mysqli($servername, $username, $password, $dbname);

// Check if email already exists in database
$sql = "SELECT * FROM counter_table WHERE email = '$email'";
$result = $conn->query($sql);

if ($result->num_rows == 0) {
    // Increment counter if email is not found
    $sql = "INSERT INTO counter_table (email, count) VALUES ('$email', 1)";
    $conn->query($sql);
} else {
    echo "Email address has already incremented the counter.";
}

$conn->close();

?>