En el siguiente ejemplo vamos a guardar un registro utilizando mysqli_connect, html_entity_decode, esta función convierte todas las entidades HTML a sus caracteres correspondientes y finalmente strip_tags que retira las etiquetas HTML y PHP de un string.
<?php // Creamos una conexión $conn = mysqli_connect('localhost','my_user','my_password','my_db'); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "conexión exitosa"; // colectamos los valores que $nombre = strip_tags(html_entity_decode($_POST['nombre'], ENT_NOQUOTES, "UTF-8")); $apellidos = strip_tags(html_entity_decode($_POST['apellidos'], ENT_NOQUOTES, "UTF-8")); $password = strip_tags(html_entity_decode($_POST['password'], ENT_NOQUOTES, "UTF-8")); // aquí es importante recordar que en la validación de contraseñas debemos pasar también strip_tags y html_entity_decode a nuestro valor $_POST $claveParaGuardar = password_hash($password, PASSWORD_DEFAULT); $sql = "INSERT INTO clientes (nombre, apellidos, password) VALUES ('$nombre', '$apellidos', '$claveParaGuardar')"; if (mysqli_query($conn, $sql)) { echo 'Registro Agregado'; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } mysqli_close($conn); ?>
Como siempre el ejemplo es sencillo para su fácil comprensión, pero podemos hacer alguna función para sanitizar los datos colectados de $_POST o también usar htmlentities para convertir todos los caracteres aplicables a entidades HTML para mostrar la información de nuestra base de datos.