No estás evaluando si $result es o no exitoso. Es decir, tu
asumes que funcionó bien, pero no lo verificas en ninguna parte.
Y donde es evidente es que en el VALUES.(....) tienes una coma de más, lo que debería disparar un error de sintaxis, que no estás capturando.
Código PHP:
<?php print('<? xml version="1.0" encoding="UTF-8"?>');?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><body>
<?php
if(isset($_POST['enviar'])){
$link = mysqli_connect("localhost", "root", "", "ejercicios");
$sql = "INSERT INTO miniagenda (nombre, direccion, telefono, email)";
$sql.= "VALUES ('".$_POST["nombre"]."', '".$_POST["direccion"]."', '".$_POST["telefono"]."', '".$_POST["mail"]."')";
$result = mysqli_query($link, $sql);
if(!$result)
{print (mysqli_error());}
else
{print ("Hemos recibido sus datos correctamente. \n");}
recibido:
var_dump($_POST);
print("La query es: $sql<br />");
print($msg);
} else {
//se vuelve a mostrar el formulario si no se ingresaron datos.
?>