#47 prueba con esto
registro.php //donde tienes el formulario
<div id="registro">
<?php if(isset($_GET['mostrar_error'])) { ?>
<div class="error">
<?php
if($_GET['mostrar_error']==1) echo "Debe rellenar todos los campos";
elseif ($_GET['mostrar_error']==2) echo "Imposible conectar con el servidor ";
echo "</div>";
} ?>
<form method="POST" action="respuesta.php">
<label>Nombre:</label><input type="text" name="nombre"><br>
<label>Nombre de usuario:</label><input type="text" name="usuario"><br>
<label>Contraseña:</label><input type="password" name="clave"><br>
<label>Email:</label><input type="text" name="email"><br>
<div class="submit">
<input type="submit" value="Registrar">
</div>
</form>
</div>
respuesta.php // donde procesas los datos y en caso de que no rellenen los campos vuelve a registro.php con el mensaje
<?php if($_POST) {
$nombre = $_POST['nombre'];
$usuario = $_POST['usuario'];
$clave = $_POST['clave'];
$email = $_POST['email'];
if ($nombre == "" or $usuario == "" or $clave == "" or $email == "") {
header("Location: registro.php?mostrar_error=1");
} else {
include 'includes/config.php';
$sql = sprintf("INSERT INTO usuarios VALUES (NULL,'$nombre','$usuario', md5('$clave'), '$email')");
$res = mysql_query($sql);
if (!$res) header("Location: registro.php?mostrar_error=2");
$mensaje = sprintf("Usuario registrado correctamente");
}
}
?>
#51 llamalos como quieras, pero el formulario, si vas a meter php no puede tener extensión html. Ambos tienen que ser .php tal y como esta planteado el código