Yo probaría a cambiar esta línea
Código PHP:
if ( isset( $_POST['txtdni'], $_POST['txtnom'], $_POST['txtape'] ) ) {
Y ponerla así
Código PHP:
if ( isset( $_POST['txtdni']) && isset( $_POST['txtnom']) && isset( $_POST['txtape'] ) ) {
No estoy seguro que isset valore si existe o no existe varios campos separados por comas, quizá sí, pero se me ocurre que puedes probar eso.
Y si no, después de la consulta, antes del ";" añade un " or die ("El error de la consulta es: ".mysql_error())
Código PHP:
mysql_query("INSERT INTO cliente (dni,nombre,apellido) VALUES ($dni, $nom, $ape)",$cn) or die ("Error mysql = ".mysql_error());
Así si la consulta da error por algo, obtienes información de qué es lo que falla.