What best practices should be followed when designing a guestbook system in PHP to ensure data integrity and security?

When designing a guestbook system in PHP, it is important to follow best practices to ensure data integrity and security. This includes validating user input to prevent SQL injection attacks, sanitizing and escaping data before storing it in the database, and implementing measures to prevent cross-site scripting (XSS) attacks.

// Validate user input to prevent SQL injection
$name = mysqli_real_escape_string($conn, $_POST['name']);
$message = mysqli_real_escape_string($conn, $_POST['message']);

// Sanitize and escape data before storing in the database
$name = filter_var($name, FILTER_SANITIZE_STRING);
$message = filter_var($message, FILTER_SANITIZE_STRING);

// Prevent cross-site scripting (XSS) attacks
$name = htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
$message = htmlspecialchars($message, ENT_QUOTES, 'UTF-8');

// Insert data into the database
$sql = "INSERT INTO guestbook (name, message) VALUES ('$name', '$message')";
mysqli_query($conn, $sql);