Problema con registro

Hola foreros, ando haciendo un sistema de registros y login pero me he encontrado con un problemita.... el formulario no atiende muy bien a las indicaciones que le doy sobre si el usuario ya existe, o si se registro con exito aqui esta el codigo del formulario:



registro2.php:


<?php
require ("funciones.php");

seguridadIndex();

$error = 0;
$registrar = 0;



if(isset($_POST['registrar']))
{
$registrar = 1;
$error = registrarUsuario(limpiar($_POST['user']), $_POST['pass'], $_POST['NOMBRE'], $_POST['EMAIL']);
}


?>


<html>
<head>

<link rel="StyleSheet" media="screen" type="text/css" href="estilos.css">
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="ie.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<!--

-->

<style type="text/css">
<!--
body {
background-image: url();
background-color: #F3F3F3;
}
.Estilo3 {
font-size: 36px;
font-family: Geneva, Arial, Helvetica, sans-serif;
color: #FFFFFF;
}
.Estilo7 {
color: #2A3FAA;
font-weight: bold;
}
.Estilo18 {font-size: 12px}
.Estilo22 {
color: #FFFFFF;
font-size: 18px;
}
.Estilo23 {
font-size: 18px;
font-weight: normal;
}
a:link {
color: #3300FF;
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #AA00AA;
}
a:hover {
text-decoration: underline;
}
a:active {
text-decoration: none;
}
.Estilo24 {font-size: 16px}
.Estilo25 {color: #000000}
.Estilo26 {
font-size: 18px;
color: #000000;
font-weight: bold;
}
.Estilo27 {font-size: 18px; }
.Estilo28 {font-size: 18px; font-weight: bold; }
.Estilo29 {
font-size: 16px;
color: #888888;
}
.Estilo32 {font-size: 14px}
.Estilo33 {font-size: 12px; color: #000000; }
.Estilo34 {font-size: 12px; color: #000000; font-weight: bold; }
.Estilo36 {font-size: 24; }
-->
</style>

<title>Formulario de Registro</title>
<form name="login" method="post" action="">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
background-color: #F3F3F3;
}
-->
</style></head>

<body>

<div id="tituloformulario">
<p align="center" class="Estilo3">[ COURSEMATCH LAGUNA ]</p>
<p align="center" class="Estilo3 Estilo18"><span class="Estilo24"><a href="contact.html">about</a> <a href="terms.html">terms </a></span></p>
</div>






<p class="Estilo7"></p>
<div class="Estilo26" id="menu">
<div align="center" class="Estilo24">
<p>&nbsp;</p>
<p>registrate </p>
</div>
</div>
<p class="Estilo25">&nbsp;</p>
<div id="cuadroregistro">

<div id="registro">
<style type="text/css">
div { border-radius:10px; -moz-border-radius:10px; }
</style>
<div class="Estilo22" id="formulario">
<p class="Estilo27"><strong>:: Registrate :: </strong></p>
</div>
<div class="Estilo23" id="info">
<p align="left" class="Estilo28">Informaci&oacute;n Requerida:</p>
<p class="Estilo27">&nbsp; </p>
<p class="Estilo27"><span class="Estilo27">Username:</span>
<label>
<style type="text/css">
input { border-radius:5px; -moz-border-radius:5px; }
</style>
<style type="text/css">
.input_sinfoco{
background:#FFFFFF;
border: 3px solid #9B9B18;;
}
.input_confoco{
background:#FAF9FF;
border: 3px solid #9B9B18;;
}
</style>

<input name="user" type="text" id="user" class="input_sinfoco" onFocus="this.className='input_confoco'"><?php if($registrar && $error>0) echo 'value="'.limpiar($_POST['user'], $_POST['NOMBRE'], $_POST['EMAIL']).'"'; ?>
</label>
</p>
<p align="center" class="Estilo29">&nbsp;</p>
<p align="center" class="Estilo29">(Por favor, escribe el nombre de usuario con el que deseas iniciar sesi&oacute;n en este sitio)</p>
<hr>
<p align="left" class="Estilo36"><span class="Estilo27">Password:</span>
<label>
<input name="pass" type="password" id="pass" class="input_sinfoco" onFocus="this.className='input_confoco'">
</label>
</p>
<p align="center" class="Estilo29">&nbsp;</p>
<p align="center" class="Estilo29">(Introduce una contrase&ntilde;a para tu cuenta. Se toman en cuenta min&uacute;sculas y may&uacute;sculas) </p>
<hr>
<p align="left" class="Estilo27"><span class="Estilo27">Nombre:</span>
<label>
<input name="NOMBRE" type="text" id="NOMBRE" class="input_sinfoco" onFocus="this.className='input_confoco'">
</label>
</p>
<p align="center" class="Estilo29">&nbsp;</p>
<p align="center" class="Estilo29">(No creo que tengamos que explicarte lo que debes colocar en este campo, vale solo escribe tu nombre) </p>
<hr>
<p class="Estilo27">E-mail:
<label>
<input name="EMAIL" type="text" id="EMAIL" class="input_sinfoco" onFocus="this.className='input_confoco'">
</label>
</p>
<p>&nbsp;</p>
<p align="center"><span class="Estilo29">(E</span><span class="Estilo29">scribe tu direcci&oacute;n de correo electr&oacute;nico v&aacute;lida. Al acabar de rellenar este formulario da click en 'registrarme')</span></p>
<p align="center" class="Estilo29">&nbsp;</p>
<p align="center" class="Estilo29">
<label></label>
</p>

<p align="center" class="Estilo29">
<label>
<td align="right"><input type="submit" name="registrar" id="registrar" value="Registrar" />
</label>
</p>
<p align="center" class="Estilo29">&nbsp;</p>
<p align="center" class="Estilo29">&nbsp;</p>
<p align="center" class="Estilo29">&nbsp;</p>
<p align="center" class="Estilo29">&nbsp;</p>
<div align="center">
<p class="Estilo33">una producci&oacute;n de Diego Trujis Gonzalez y Saul Reyes Samago </p>
<p><span class="Estilo34">js </span><span class="Estilo33">@ </span>2012</p>
</div>
<p align="center" class="Estilo32">&nbsp;</p>
</div>
</div>
</div>

</body>


</html>


<?php
switch ($error) {
case -1://login
echo '<br/><strong>Usuario o clave incorrecta</strong>';
break;
case -2://registro
echo '<br/><strong>Error al registrarse. Usuario ya existente.</strong>';
break;
case -3://registro
echo '<br/><strong>El usuario y la contraseña deben tener como mínimo 4 carácteres.</strong>';
break;
default:
if($registrar)
{
header ("location: mensajeregistrado.html");
break;

}
}
?>



el problema esta en que no atiende a las indicaciones del ultimo php, no realiza el header con location 'mensajeregistrado.html', ni arroja mensaje de que ya hay un usario con ese nombre de usuario... que podria ser??? habra un problema en el codigo???


LA INFORMACION SE MANDA A LA DB, PERO NO ABRE EL HEADER QUE ES EL MENSAJE DE BIENVENIDA AL USUARIO...

GRACIAS!!!!!!!!!
Hola:

no realiza el header con location 'mensajeregistrado.html',

¿Lo que aparece en ese archivo PHP es el mismo donde esta el código HTML? Si es así, entonces tienes que entender que header() sólo funciona si se utiliza antes de mostrar algo en el navegador. En tu caso, estás mostrando el código HTML antes de utilizar la función. Distinto sería si envuelves el código HTML en un if... else para condicionar lo que se muestra.

También ayudaría si envuelves el código en con la etiqueta [ php][ /php] (sin espacios) :P.

Saludos.
Hola skaparate!!, gracias por tu respuesta, mira aqui envolvi el codigo php para que le des una checada xD:

<?php
require ("funciones.php");

seguridadIndex();

$error = 0;
$registrar = 0;



if(isset($_POST['registrar']))
{    
    $registrar = 1;
    $error = registrarUsuario(limpiar($_POST['user']), $_POST['pass'], $_POST['NOMBRE'], $_POST['EMAIL']);
}

 
?>
 
 
      <html>
<head>

<link rel="StyleSheet" media="screen" type="text/css" href="estilos.css">
<!--[if IE]>
    <link rel="stylesheet" type="text/css" href="ie.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<!--

-->

<style type="text/css">
<!--
body {
	background-image: url();
	background-color: #F3F3F3;
}
.Estilo3 {
	font-size: 36px;
	font-family: Geneva, Arial, Helvetica, sans-serif;
	color: #FFFFFF;
}
.Estilo7 {
	color: #2A3FAA;
	font-weight: bold;
}
.Estilo18 {font-size: 12px}
.Estilo22 {
	color: #FFFFFF;
	font-size: 18px;
}
.Estilo23 {
	font-size: 18px;
	font-weight: normal;
}
a:link {
	color: #3300FF;
	text-decoration: none;
}
a:visited {
	text-decoration: none;
	color: #AA00AA;
}
a:hover {
	text-decoration: underline;
}
a:active {
	text-decoration: none;
}
.Estilo24 {font-size: 16px}
.Estilo25 {color: #000000}
.Estilo26 {
	font-size: 18px;
	color: #000000;
	font-weight: bold;
}
.Estilo27 {font-size: 18px; }
.Estilo28 {font-size: 18px; font-weight: bold; }
.Estilo29 {
	font-size: 16px;
	color: #888888;
}
.Estilo32 {font-size: 14px}
.Estilo33 {font-size: 12px; color: #000000; }
.Estilo34 {font-size: 12px; color: #000000; font-weight: bold; }
.Estilo36 {font-size: 24; }
-->
</style>

<title>Formulario de Registro</title>
<form name="login" method="post" action="">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
	background-color: #F3F3F3;
}
-->
</style></head>

<body>

<div id="tituloformulario">
  <p align="center" class="Estilo3">[ COURSEMATCH LAGUNA ]</p>
  <p align="center" class="Estilo3 Estilo18"><span class="Estilo24"><a href="contact.html">about</a> <a href="terms.html">terms </a></span></p>
</div>






 <p class="Estilo7"></p>
  <div class="Estilo26" id="menu">
    <div align="center" class="Estilo24">
      <p>&nbsp;</p>
      <p>FORMULARIO DE REGISTRO </p>
    </div>
  </div>
  <p class="Estilo25">&nbsp;</p>
      <div id="cuadroregistro">

<div id="registro">
      <style type="text/css">
  div { border-radius:10px; -moz-border-radius:10px; }
      </style>
      <div class="Estilo22" id="formulario">
        <p class="Estilo27"><strong>:: Registrate :: </strong></p>
    </div>
      <div class="Estilo23" id="info">
        <p align="left" class="Estilo28">Informaci&oacute;n Requerida:</p>
     <p class="Estilo27">&nbsp; </p>
     <p class="Estilo27"><span class="Estilo27">Username:</span>
       <label>
	   <style type="text/css">
  input { border-radius:5px; -moz-border-radius:5px; }
</style>
<style type="text/css">
  .input_sinfoco{
      background:#FFFFFF;
      border: 3px solid #9B9B18;;
  }
  .input_confoco{
      background:#FAF9FF;
      border: 3px solid #9B9B18;;
  }
</style>

       <input name="user" type="text" id="user" class="input_sinfoco" onFocus="this.className='input_confoco'"><?php if($registrar && $error>0) echo 'value="'.limpiar($_POST['user'], $_POST['NOMBRE'],  $_POST['EMAIL']).'"'; ?>
       </label>
</p>
     <p align="center" class="Estilo29">&nbsp;</p>
     <p align="center" class="Estilo29">(Por favor, escribe el nombre de usuario con el que deseas iniciar sesi&oacute;n en este sitio)</p>
     <hr>
     <p align="left" class="Estilo36"><span class="Estilo27">Password:</span>
       <label>
       <input name="pass" type="password" id="pass" class="input_sinfoco" onFocus="this.className='input_confoco'">
       </label>
     </p>
     <p align="center" class="Estilo29">&nbsp;</p>
     <p align="center" class="Estilo29">(Introduce una contrase&ntilde;a para tu cuenta. Se toman en cuenta min&uacute;sculas y may&uacute;sculas) </p>
     <hr>
     <p align="left" class="Estilo27"><span class="Estilo27">Nombre:</span>
       <label>
       <input name="NOMBRE" type="text" id="NOMBRE" class="input_sinfoco" onFocus="this.className='input_confoco'">
       </label>
     </p>
     <p align="center" class="Estilo29">&nbsp;</p>
     <p align="center" class="Estilo29">(No creo que tengamos que explicarte lo que debes colocar en este campo, vale solo escribe tu nombre) </p>
     <hr>
     <p class="Estilo27">E-mail:
       <label>
       <input name="EMAIL" type="text" id="EMAIL" class="input_sinfoco" onFocus="this.className='input_confoco'">
       </label>
     </p>
     <p>&nbsp;</p>
     <p align="center"><span class="Estilo29">(E</span><span class="Estilo29">scribe tu direcci&oacute;n de correo electr&oacute;nico v&aacute;lida. Al acabar de rellenar este formulario da click en 'registrarme')</span></p>
     <p align="center" class="Estilo29">&nbsp;</p>
     <p align="center" class="Estilo29">
       <label></label>
     </p>
	
     <p align="center" class="Estilo29">
       <label>
          <td align="right"><input type="submit" name="registrar" id="registrar" value="Registrar" />
        </label>
     </p>
     <p align="center" class="Estilo29">&nbsp;</p>
     <p align="center" class="Estilo29">&nbsp;</p>
     <p align="center" class="Estilo29">&nbsp;</p>
     <p align="center" class="Estilo29">&nbsp;</p>
     <div align="center">
       <p class="Estilo33">una producci&oacute;n de Diego Trujis Gonzalez y Saul Reyes Samago </p>
       <p><span class="Estilo34">GGGG
     <p align="center" class="Estilo32">&nbsp;</p>
    </div>
    </div>
  </div>

</body>


</html>

          
          <?php
            switch ($error) {
                case -1://login
                    echo '<br/><strong>Usuario o clave incorrecta</strong>';
                    break;
                case -2://registro
                    echo '<br/><strong>Error al registrarse. Usuario ya existente.</strong>';
                    break;
                case -3://registro
                    echo '<br/><strong>El usuario y la contraseña deben tener como mínimo 4 carácteres.</strong>';
                    break;
                default:
                    if($registrar)
					{
					header ("location: mensajeregistrado.html");
					break;
				
					 }
            }
?>


TE DIGO QUE ES ALGO EN LAS INDICACIONES PORQUE NINGUNA CONDICIONAL ME FUNCIONA, SI EL USUARIO YA EXISTE NO ARROJA EL MENSAJE DE ERROR, NI NINGUNA CONDICIONAL ESTA SIRVIENDO :S

gracias!!
Tienes un enredo en el código :P. Primero que nada, todo el contenido HTML que se va a mostrar en el navegador (a no ser de que sean scripts o código PHP que NO se muestre en él) debe ir dentro de <body> (excepto por la etiqueta <title>). Si revisas tu código, verás que el formulario (<form>) está antes de comenzar el <body>. Tampoco existe la etiqueta de cierre del form (</form>) lo que debe estar causando problemas.

Arregla eso primero y ve si te funciona. La función header seguirá sin funcionar porque debe aparecer antes de mostrar cualquier tipo de mensaje en el navegador. Lo que yo haría sería poner el switch al comienzo del script (después del include/require):

<?php
  require( 'funciones.php' );
  
  seguridadIndex(); 

  $error = 0;
  $registrar = 0; 

  if( isset( $_POST['registrar'] ) ) {     
    $registrar = 1; 
    $error = registrarUsuario(limpiar($_POST['user']), $_POST['pass'], $_POST['NOMBRE'], $_POST['EMAIL']); 
  }

  switch ($error) {
    // La variable $MSG debes mostrarla dentro del <BODY>
    case 0: // no se hace nada, sino se saltaría hasta default y siempre estaría registrado
      break;
    case -1://login 
      $msg =  '<br/><strong>Usuario o clave incorrecta</strong>'; 
                    break;
    case -2://registro 
      $msg = '<br/><strong>Error al registrarse. Usuario ya existente.</strong>'; 
      break; 
    case -3://registro 
      $msg = '<br/><strong>El usuario y la contraseña deben tener como mínimo 4 carácteres.</strong>'; 
      break; 
    default:
      header ("location: mensajeregistrado.html");
      // break es innecesario en la caso de default, especialmente en este caso, porque al ejecutar header se irá hacia otra página.
  }
?>
<!-- Luego pones el resto del código -->

Espero que te sirva, saludos :D.