Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/11/2005, 23:12
nacho004
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 1
Ayuda con formulario de registro

Hola! inauguro mi primer mensaje con una buena duda que tengo.
Yo hice un formulario (registrar_form.php) que tiene alrededor de 33 campos para completar..., este form tiene como accion al archivo (registrar_accion.php), en este archivo lo que hago es tomar en variables la informacion que se puso en cada campo... por ejemplo, hay un campo que se llama nombre... lo que hice fue poner $nombre= $_POST[nombre] lo hice para que al momento de escribir las inserciones en la BD no se haga tan largo el codigo :D.... pero aca va llegando mi problema.... hice varios if antes antes de que se manden los datos a la BD que son los condicionantes de que si nombre tiene menos de 4 letras no sirve, o que la clave y repetir clave no son iguales etc. Y en cada una de estas condiciones, si se llega a dar alguna hice que se cree una variable con un mensaje de error. Mi idea era, de alguna forma hacer que cuando no se cumplan las condiciones aparezca nuevamente la tabla del formulario con los mensajes de error, y tambien que en los campos haya quedado lo que se escribio anteriormente. Les muestro la parte del codigo de la accion asi se guian un poco de que hablo

Código PHP:
// ::Condiciones que se tiene que dar para que se cumpla el registro::
//Si estos campos estan vacios, tira el mensaje de que son obligatorios
if ($usuario=="" || $clave=="" || $nombres=="" || $apellido=="" || $email==""){
    
$msj"Los campos Usuario, Clave, Nombres, Apellido y Email son obligatorios, por favor, complételos.";

}

// Usuario debe contener al menos 5 caracteres
if (strlen($usuario) < 5){
    
$msj1"Deben ser más de 4 letras";

}

// Me fijo si el usuario ya esta registrado en la base de datos.
$sql_usuario_existe mysql_query("SELECT * FROM usuarios WHERE usuario='$usuario'");
$usuario_existe mysql_num_rows($sql_usuario_existe);
if (
$usuario_existe 0){
    
$msj2"El usuario ya existe";

}

// La clave tiene que ser igual a la repeticion de clave.
if ($clave != $clave1){
    
$msj3"Las claves no concuerdan";

}

// Me fijo si el mail ya esta registrado en la base de datos.
$sql_email_existe mysql_query("SELECT * FROM usuarios WHERE email='$email'");
$email_existe mysql_num_rows($sql_email_existe);
if (
$email_existe 0){
    
$msj4"El email ya existe";


Lo que yo pensaba en un principio era poner debajo de los mensajes de error $msjn°... poner header (Location: registrar_form_error.php); que me llevaria a una copia del formulario que les comente al principio pero que incluye las variables para mostrar los mensaes de error.
Haciendo esto con header, me abria el formulario pero todo vacio.... hacerlo con el metodo GET es imposible por la cantidad de informacion.... y poniendole POST tampoco me funciono...... que solucion me darian, para que cuando los usuarios no cumplan uno de los campos les aparesca el formulario con los carteles de error pero conservando los datos ingresados??

Desde ya muchisimas gracias!

PD: cualquier cosa si no se entiene, explico de nuevo!