Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/04/2011, 16:37
Avatar de uikekarallo
uikekarallo
 
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Problema con mensaje de error

Lo ideal sería que la comprobación la hicieras mediante JavaScript (Ajax) antes de enviar el formulario. Y si todo está correcto, que lo envíe. Eso si, quien no utilice javascript, tendrá que volver a rellenar los datos.

La otra idea, si no quieres pasar los parámetros por get (por si hay contraseñas por el medio), es: si el nombre de usuario ya existe, recoge todos datos igualmente y devuélvelos.

El ejemplo:

Código PHP:
  $usuario $_POST['nombre'];
  
$campo2 $_POST['campo2'];
  
$campo3 $_POST['campo3'];

  
// aquí la conexión a base de datos y comprobación

  // si el usuario ya existe... devolvemos los datos (menos datos privados como la contraseña o el e-mail, claro)
  
header('Location: /form.php?error=yaexiste&campo2='.$campo2.'&campo3='.$campo3);

  
// si todo va bien continuamos con el registro 
Y en el formulario...

Código PHP:
<?php 
  
switch( @$_GET['error'] )
  {
    case 
'yaexiste':
      
$campo2 $_GET['campo2'];
      
$campo3 $_GET['campo3'];
      
// etc
      
break;
  }
?>

<form action="/enviar.php" method="post">
  <input type="text" name="usuario" />
  <input type="text" name="campo2" value="<?php echo $campo2?>" />
  <input type="text" name="campo3" value="<?php echo $campo3?>" />
</form>
De esta manera devolvemos los valores a los campos, aunque repito: Mucho mejor con JavaScript y Ajax. Más sencillo, más limpio y por tanto más eficiente. La pega, usuarios que no lo tengan (claro que estos siempre podrán volver a rellenar los campos de nuevo...)


Espero haberte ayudado. Un saludo.