Foros del Web » Programando para Internet » PHP »

Campos obligatorios en formulario

Estas en el tema de Campos obligatorios en formulario en el foro de PHP en Foros del Web. Hola, Tengo un formulario que es enviado a otro archivo cuando es rellenado. Tengo varios campos obligatorios, como el campo del email, el problema es ...
  #1 (permalink)  
Antiguo 31/05/2007, 16:51
 
Fecha de Ingreso: enero-2006
Mensajes: 15
Antigüedad: 18 años, 3 meses
Puntos: 0
Campos obligatorios en formulario

Hola,

Tengo un formulario que es enviado a otro archivo cuando es rellenado.
Tengo varios campos obligatorios, como el campo del email, el problema es que con cualquier letra que se rellene este campo el formulario es enviado.

He visto por en las FAQ un código para validar que el campo se rellene con un email correcto, pero no consigo aplicarlo.

Este es mi código para hacer el campo email obligatorio:

if($_POST['mail'] ==""){
header("location:ag_clasificado.php?e=ob3");
exit();
}

De esta manera consigo que se deba de escribir algo, de lo contrario no deja de enviar el formulario, lo que no consigo es implementarle el código para validar el email.

Por favor, pueden ayudarme?

Gracias
Saludos

Última edición por jromes; 31/05/2007 a las 16:52 Razón: Para suscribirme al post
  #2 (permalink)  
Antiguo 31/05/2007, 18:32
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Campos obligatorios en formulario

Hola jromes!!

Mira el còdigo que te permite validar que un correo sea digitado correctamente

Código PHP:
if (ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+)\.([a-zA-Z]{2,4})$",$_POST['ema'])) 
Debes cambiar lo que para mi es "ema", por tu variable que contiene el email, vale?? y con eso no te deja pasar hasta que no te digiten bien!!

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 31/05/2007, 19:31
 
Fecha de Ingreso: enero-2006
Mensajes: 15
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Campos obligatorios en formulario

Muchas gracias Carxl,

He sustituido el código anterior:
if($_POST['mail'] ==""){
header("location:ag_clasificado.php?e=ob3");
exit();
}

Por el que me has enviado:
if (ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+)\.([a-zA-Z]{2,4})$",$_POST['mail']))

Pero no consigo hacerlo funcionar, ahora se puede enviar el formulario aunque no rellenes la casilla del email, aunque la dejes en blanco.

Sabes que puede faltar?

Gracias otra vez,
Saludos...
  #4 (permalink)  
Antiguo 01/06/2007, 09:27
 
Fecha de Ingreso: enero-2006
Mensajes: 15
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Campos obligatorios en formulario

Hola de nuevo,

Alguien sabe donde puede estar el fallo, a pesar de poner este código en mi archivo de validación:

if (ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+)\.([a-zA-Z]{2,4})$",$_POST['mail']))

No consigo hacerlo como campo obligatorio, y el formulario es enviado aunque el campo se deje en blanco o se escriba cualquier cosa que no sea una dirección de email.

Ayuda, por favor -

Saludos...
  #5 (permalink)  
Antiguo 01/06/2007, 09:50
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Campos obligatorios en formulario

a ver si te sirve este ejemplo:

Código PHP:
<?php
  
function email_valido($correo) {
    if (
eregi("^[_\.0-9a-z-]+@[0-9a-z\._\-]+\.[a-z]{2,4}$"$correo)) return true;
    else return 
false;
  }
  
// luego validamos que los datos ingresados sean los correctos
  
if(!email_valido($_POST['email'])) { // email lo puedes cambiar por el nombre de tu campo
    
echo "El email ingresado no es correcto";
  }else {
    
// aquí tu código de envío
  
}
?>
Espero que te sirva.

Saludos.
  #6 (permalink)  
Antiguo 01/06/2007, 10:28
 
Fecha de Ingreso: enero-2006
Mensajes: 15
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Campos obligatorios en formulario

Muchas gracias ZydRick,

Al final he conseguido hacerlo funcionar de esta forma:

if (ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+)\.([a-zA-Z]{2,4})$",$_POST['mail']));
else {
echo
header("location:ag_clasificado.php?e=ob3");
exit();

El que me has enviado tú, lo he probado y también funciona -->

Ahora tengo otro pequeño problema, y es que cuando rellenas el formulario y falta cualquier campo obligatorio sin rellenar te muestra el mensaje de error (esto es correcto), lo que pasa que se borran todos los campos rellenados del formulario y hay que volver a escribirlos todos de nuevo.

Hay alguna forma para hacer que cuando de algún error y se actualiza la página, los campos que hallan sido rellenados permanezcan con los datos?

Saludos...
  #7 (permalink)  
Antiguo 01/06/2007, 10:45
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Campos obligatorios en formulario

Usando el mismo ejemplo que te di, yo lo hago de esta manera:

Código PHP:
<?php
    
// a este archivo lo llamamos enviamail.php
    
if(isset($_POST['enviar'])) { // consultamos si es que se enviaron los datos del formulario
        // creamos una función para validar que el email esté en un formato correcto
        
function email_valido($correo) {
            if (
eregi("^[_\.0-9a-z-]+@[0-9a-z\._\-]+\.[a-z]{2,4}$"$correo)) return true;
            else return 
false;
        }
        
// luego validamos que los datos ingresados sean los correctos
        
if(!email_valido($_POST['email'])) { // email lo puedes cambiar por el nombre de tu campo
            
echo "El email ingresado no es correcto <a href='javascript:history.back()'>Regresar</a>"// el href='javascript:history.back()' nos devolverá el formulario con todos los datos recuperados
        
}else {
            
// aquí tu código de envío
        
}
    }else {
?>
    <form action="enviamail.php" method="post">
        <input type="text" name="email" />
        <input type="submit" name="enviar" value="Enviar correo" />
    </form>
<?php
    
}
?>
Ahí te darás cuenta que en el mensaje de error del email he añadido un link con la propiedad javascript:history.back() lo cual nos devolverá el formulario con todos los datos que se ingresaron. Pruébalo y nos cuentas que tal te fue.

Saludos
  #8 (permalink)  
Antiguo 01/06/2007, 11:41
 
Fecha de Ingreso: enero-2006
Mensajes: 15
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Campos obligatorios en formulario

El problema es que el formulario no va a la siguiente página o archivo, cuando hay algún campo obligatorio que no es completado, te muestra el error en la misma página del formulario, lo que pasa es que desaparecen todos los campos rellenados.

Mira si quieres hacer una prueba, tablonia . es / ag_clasificado.php

Saludos
  #9 (permalink)  
Antiguo 01/06/2007, 11:47
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Campos obligatorios en formulario

si te das cuenta el archivo que hice se ejecuta en la misma página y al dar clic en regresar simplemente muestra el formulario con los datos recuperados.
  #10 (permalink)  
Antiguo 01/06/2007, 12:45
 
Fecha de Ingreso: enero-2006
Mensajes: 15
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Campos obligatorios en formulario

Si es verdad, he probado tu código en un archivo y funciona perfectamente.

El problema parece que lo tengo en mi formulario, ya que al retroceder a la página ya están los campos borrados.

El tuyo sin embargo, cuando regresas siguen los datos.
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 20:22.