Ver Mensaje Individual
  #5 (permalink)  
Antiguo 29/12/2010, 13:37
Avatar de Gambinoh
Gambinoh
 
Fecha de Ingreso: diciembre-2010
Mensajes: 348
Antigüedad: 13 años, 5 meses
Puntos: 11
Respuesta: Alternativas a die() en este código

Cita:
Iniciado por repara2 Ver Mensaje
Perfecto has aclarado el código y lo has optimizado. Sólo un comentario, la validación es redundante, o sea, estás validando todo varias veces. La alternativa corta sería:

Código PHP:
if(empty($nombre) || empty($asunto) || empty($mensaje) || empty($remitente)){
    
$error .= "Hay campos sin rellenar";
}
else {
    
$destino "[email protected]";

y la detallada:

Código PHP:
<?php

if(empty($nombre) || empty($asunto) || empty($mensaje) || empty($remitente)) {
    
$error .= "Hay campos sin rellenar";
} elseif (empty(
$mensaje)){
    
$error .= "Mensaje vacío";
} elseif (empty(
$asunto)) {
    
$error .= "Asunto vacío";
} elseif (empty(
$nombre)) {
    
$error .= "Nombre vacío";
} elseif(empty(
$remitente)){
    
$error .= "Email vacío";
} else {
    
$destino "[email protected]";
}
?>
Pruébalo a ver que tal, salu2!
Sí, la verdad es que se me ha ido la pinza xD. Aunque en el código que has puesto tengo una duda, si bien el primero, el abreviado, es correcto, si tu dices hay campos sin rellenar en plural te refieres a que hay más de uno. Mientras que si dices "Hay que rellenar todos los campos" o "Es obligatorio rellenar todos los campos" dado que sí que son varios pues sonaría mejor.

Como tu bien dices es un super ahorro de código, lo que pasa es que soy muy nuevo y me falta leer mucho.

En el segundo ejemplo que me pones, al usar el operador || eso da un resultado "True" si alguno de ellos está vacío, por lo tanto, si escribes primero:

Cita:
if(empty($nombre) || empty($asunto) || empty($mensaje) || empty($remitente)) {
$error .= "Hay campos sin rellenar";
En ese caso estarás haciendo que siempre que haya o uno o varios campos sin rellenar se imprima el resultado "Hay campos sin rellenar".

El problema está en decir si al menos 2 o más de estos valores son ciertos entonces: hay campos sin rellenar. En caso de haber sólo uno: este campo está vacío.

Pienso que sí es posible simplificarlo como en el primer ejemplo que has puesto y pienso que también puede estar ultra personalizado el mensaje que imprime. Pero la cuestión es decir si "dos o más" yo sinceramente no se como se dice.

[Edito]

Cita:
if(empty($nombre) && empty($asunto) Or empty($mensaje) && empty($remitente)) Or empty($asunto) && empty($mensaje) Or empty($nombre) && empty($remitente)) Or empty($nombre) && empty($mensaje) Or empty($asunto) && empty($remitente)) {
$error .= "Hay campos sin rellenar";
¿Me puedes confirmar si estoy en lo correcto? Lo pruebo y te digo. De todas formas si no es por ti no lo veo. Porque sigue siendo un brutal ahorro de código. A dinde cuentas es matemáticas.

PD: Voy a empezar a leer tu aporte de la validación a ver si lo voy entendiendo y lo puedo implementar facilmente en mi validación y si no entiendo algo te pregunto.


Estas en todo jeje ^^

Última edición por Gambinoh; 29/12/2010 a las 13:54