¿Cómo requerir uno de los tres campos de un formulario?

FacundoGQR Seguir

Beta
Verificación en dos pasos activada
Desde
9 Nov 2015
Mensajes
81
Buenas!!, por aquí con un duda con un código.

Tengo los siguientes campos en un formulario:
- titulo
- ciudad
- descripcion
- imagen1
- imagen2
- imagen3

Lo que necesito hacer es que si se completan los campos título, ciudad, descripción y algunos de los restantes (imagen, imagen2 o imagen3) se ejecute un echo.
Lo que se me ocurre es:
PHP:
if(!empty($titulo) && ($ciudad) && ($descripcion) && ($_FILES['imagen']) || ($_FILES['imagen2']) || ($_FILES['imagen3'])){								
echo "Texto a mostrar";
}

Quisiera saber si esa manera es la correcta o existe alguna otra. :)
 

jonay

Kappa
Verificación en dos pasos desactivada
Desde
7 May 2010
Mensajes
2.571
Primero que todo deberás poner empty a todas las variables, luego deja un único $_FILES y utiliza un array en el campo de imagen. Por ejemplo en el name del input llámalos a todos imagen[] y así solo compruebas si está o no vacío el array, puedes usar foreach para recorrer el array y obtener los archivos. También si deseas que solo suban 3 puedes utilizar count en el array y contar cuantos archivos han subido. :encouragement:
 

FacundoGQR

Beta
Verificación en dos pasos activada
Desde
9 Nov 2015
Mensajes
81
Primero que todo deberás poner empty a todas las variables, luego deja un único $_FILES y utiliza un array en el campo de imagen. Por ejemplo en el name del input llámalos a todos imagen[] y así solo compruebas si está o no vacío el array, puedes usar foreach para recorrer el array y obtener los archivos. También si deseas que solo suban 3 puedes utilizar count en el array y contar cuantos archivos han subido. :encouragement:

¡Muchas gracias!, ya se me despertaron las ideas jajaja :encouragement:
 

Kernel666

Beta
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
15 Sep 2008
Mensajes
96
Debes de usar en tu html la palabra required
Ejemplo:
HTML:
<input type="ciudad" name="ciudad" placeholder="Ciudad" required />

en php usas:
PHP:
if(!empty($titulo) || !empty($ciudad) && !empty($descripcion) || !empty($_FILES['imagen']) || !empty($_FILES['imagen2']) || !empty($_FILES['imagen3'])){                                 
echo "Todos los campos fueron rellenados"; 
}else{
echo "No puede dejar ningun campo sin rellenar, por favor verifique que ingreso la informacion requerida en los campos requeridos";
}

Dime si te funciono
 

FacundoGQR

Beta
Verificación en dos pasos activada
Desde
9 Nov 2015
Mensajes
81
Debes de usar en tu html la palabra required
Ejemplo:
HTML:
<input type="ciudad" name="ciudad" placeholder="Ciudad" required />

en php usas:
PHP:
if(!empty($titulo) || !empty($ciudad) && !empty($descripcion) || !empty($_FILES['imagen']) || !empty($_FILES['imagen2']) || !empty($_FILES['imagen3'])){                                 
echo "Todos los campos fueron rellenados"; 
}else{
echo "No puede dejar ningun campo sin rellenar, por favor verifique que ingreso la informacion requerida en los campos requeridos";
}

Dime si te funciono

¡¡Gracias!!, tendré en cuenta el código PHP.
required prefiero no utilizarlo ya que es más fácil de vulnerar.
 

cerorank

Zeta
Verificación en dos pasos desactivada
Desde
7 Ene 2017
Mensajes
1.813
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Primero que todo deberás poner empty a todas las variables, luego deja un único $_FILES y utiliza un array en el campo de imagen. Por ejemplo en el name del input llámalos a todos imagen[] y así solo compruebas si está o no vacío el array, puedes usar foreach para recorrer el array y obtener los archivos. También si deseas que solo suban 3 puedes utilizar count en el array y contar cuantos archivos han subido. :encouragement:

No es así, se nota que no sabes de programación. Y eso que te doy clases todos los días :encouragement:
 

Kernel666

Beta
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
15 Sep 2008
Mensajes
96
¡¡Gracias!!, tendré en cuenta el código PHP.
required prefiero no utilizarlo ya que es más fácil de vulnerar.
Me alegra que lo haya tomado en cuenta, Si le a gustado, me regala un un Me Agrada, el require es solamente para el diseño Front-End y el !empty es para el back-end.

Siempre a la orden.
 

FacundoGQR

Beta
Verificación en dos pasos activada
Desde
9 Nov 2015
Mensajes
81
Me alegra que lo haya tomado en cuenta, Si le a gustado, me regala un un Me Agrada, el require es solamente para el diseño Front-End y el !empty es para el back-end.

Siempre a la orden.

Código funcionando. :encouragement: Ahí le regalé su Me Agrada. :witless:
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba