corazon antes de hacer la inserccion de datos verifica si existe alguno registro con ese campo y si es repetido, regresalo:
Código PHP:
<HTML>
<HEAD>
<TITLE>Insertar.php</TITLE>
</HEAD>
<BODY bgcolor="#000000">
<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","user","pass")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("base_datos",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
$link=Conectarse();
$nombre = $_GET['nombre'];
$apellido = $_GET['apellido'];
$dni = $_GET['dni'];
$email = $_GET['email'];
$b=mysql_query("select *from lista where dni='$dni'") or die ("Error: ". mysql_error());
$num=mysql_num_rows($b);
if($num>0){
echo '<script>alert("Ya existe un user con ese dni");history.back(-1);</script>';
}else{
mysql_query("insert into lista (nombre,apellido,dni,email) values ('$nombre','$apellido','$dni','$email')",$link);
?>
<font color="#ffffff">
<h2><div align="center">Gracias por registrarte</div></h2>
<div align="center"><a href="lectura.php" target="blank_">Haz clic aqui si deseas ver la lista completa</a><br><br><br>
<a href="javascript: self.close ()">Cerrar esta Ventana</a></div>
<?php}></BODY>
</HTML>