Foros del Web » Programando para Internet » PHP »

Problema con mensaje de error

Estas en el tema de Problema con mensaje de error en el foro de PHP en Foros del Web. Hola a todos, tengo un problema con un formulario de registro... en éste valido que el nick name no exista, si eso ocurre hago un ...
  #1 (permalink)  
Antiguo 04/04/2011, 15:16
 
Fecha de Ingreso: mayo-2010
Mensajes: 70
Antigüedad: 13 años, 9 meses
Puntos: 1
Problema con mensaje de error

Hola a todos, tengo un problema con un formulario de registro... en éste valido que el nick name no exista, si eso ocurre hago un alert ("el nick name ya existe"); esto se encuentra en la parte lógica de mi página ej: proceso_usuarios.php. Mi problema es que luego de aparecer el mensaje de error vuelve al formulario de registro pero sin los valores y es bastante tedioso tener que llenar el formulario de nuevo cuando lo único que quiero es cambiar el nick name... espero que me haya expresado bien gracias! pd: para mostrar el mensaje utilizo una variable de sesión (mensajes)... ejemplo de mi código:

if(modo == 1){
registro el usuario
}else{
$_SESSION['ses_mensajes'] = "<script> alert('El nick name ya existe');window.location='../interfaz/mi_registro.php'</script>";
header("location:dmensajes.php");
}
  #2 (permalink)  
Antiguo 04/04/2011, 15:18
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 1 mes
Puntos: 96
Respuesta: Problema con mensaje de error

Saludos

Podrías pasar los parámetros por GET que el usuario diligencio, para no tener que volver a digitar todo.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 04/04/2011, 16:37
Avatar de 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.

Etiquetas: mensaje
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:06.