Hola.
Cuando hace el submit, lo que hace es volver a cargar la pagina, recoge los datos que contienen el formulario y lo envía a index.php, pero al hacerlo borra los valores porque pones value="", es decir eliminar el valor y lo enviar por post a index.php.
Lo puedes hacer de dos formas
Insertas el código php arriba de todo y pones una condición.
Código PHP:
<?
if (isset($_POST[submit]))
{
include ("includes/config.php");
include ("includes/funciones.php");
//nos conectamos a mysql
$cnx = conectar ();
$campos = "nombre,apellido,telefono";
$valores = "'".$_POST['nombre']."',";
$valores .= "'".$_POST['apellido']."',";
$valores .= "'".$_POST['telefono']."'";
$sql = "INSERT INTO directorio ($campos) VALUES($valores)";
$res = mysql_query($sql) or die(mysql_error());
echo "Registro ingresado.<br><a href='listado.php'>regresar</a>";
mysql_close($cnx);
}
?>
<HTML>
<form name="form1" method="post" action="index.php">
nombre<input name="nombre" type="text" id="nombre" value=""<br>
apellido<input name="apellido" type="text" id="apellido" value=""<br>
ELEFONO<input name="telefono" type="text" id="telefono" value=""<br>
<input type="submit" name="submit" value="enviar">
</form>
</HTML>
Obserba que he quitado exit() para que llegue al final del todo, no es necesario ponerlo, ya que si no, la pantalla se quedaría en blanco.
o la otra forma de hacer es dejarle los valores al formulario de esta forma
Código PHP:
nombre<input name="nombre" type="text" id="nombre" value="<?echo $_POST[nombre]?>"<br>
apellido<input name="apellido" type="text" id="apellido" value="<?echo $_POST[apellido]?>"<br>
TELEFONO<input name="telefono" type="text" id="telefono" value="<?echo $_POST[telefono]?>"<br>
Pruébalo y comenta.
Suerte.