código

Guardar registro con password_hash

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.