Foros del Web » Programando para Internet » PHP »

Terminar una condicion if

Estas en el tema de Terminar una condicion if en el foro de PHP en Foros del Web. quiero que al momento de ejecutar el codigo php si me muestra un error determinado por una sentencia if se quede ahi y no siga ...
  #1 (permalink)  
Antiguo 18/04/2009, 18:27
Avatar de konoyek  
Fecha de Ingreso: julio-2007
Mensajes: 268
Antigüedad: 16 años, 9 meses
Puntos: 0
Terminar una condicion if

quiero que al momento de ejecutar el codigo php si me muestra un error determinado por una sentencia if se quede ahi y no siga ejecutando el codigo.
  #2 (permalink)  
Antiguo 18/04/2009, 18:32
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Terminar una condicion if

Talvez, exit() o die()?

Pero, explica un poquito mejor lo que tratas de hacer.
  #3 (permalink)  
Antiguo 18/04/2009, 18:32
 
Fecha de Ingreso: diciembre-2004
Mensajes: 163
Antigüedad: 19 años, 4 meses
Puntos: 2
Respuesta: Terminar una condicion if

exit(); o también die("mensaje de error");

uu me ganaron! :P
  #4 (permalink)  
Antiguo 18/04/2009, 18:33
 
Fecha de Ingreso: marzo-2009
Mensajes: 120
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Terminar una condicion if

supongo, que estas dentro de una funcion que va a hacer algo, y al principio de la funcion tienes un if(flat==1){ break; } donde flat es la condicion de error
  #5 (permalink)  
Antiguo 18/04/2009, 18:43
Avatar de konoyek  
Fecha de Ingreso: julio-2007
Mensajes: 268
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Terminar una condicion if

por ejemplo tengo este codigo

Código HTML:
if (!$fon) {}

else{
	$fona = explode("/", $fon); 

if ($fona[1] < $fina[1] && $fona[0] == $fina[0] && $fona[2] == $fina[2]){
	echo "<h1>Fecha Out incorrecta</h1>";
}
elseif ($fona[0] < $fina[0] && $fona[2] == $fina[2]) {
	echo "<h1>Fecha Out incorrecta, Fecha de inicio es mayor</h1>";
}
elseif ($fona[2] < $fina[2]) {
	echo "<h1>Fecha Out incorrecta, por favor verifica muy bien el año</h1>";
}






else {
//Explode del campo fin
$fin1 = explode("/", $fin); 
$ano1 = $fin1[2]; 
$mes1 = $fin1[0]; 
$dia1 = $fin1[1]; 

// explode del campo fon
$fon1 = explode("/", $fon); 
$ano2 = $fon1[2]; 
$mes2 = $fon1[0]; 
$dia2 = $fon1[1]; 

//canversion de cadenas a fechas
@$timestamp1 = mktime(0,0,0,$mes1,$dia1,$ano1); 
@$timestamp2 = mktime(0,0,0,$mes2,$dia2,$ano2);  


//diferencia de dias entre fechas
$segundos_diferencia = $timestamp1 - $timestamp2;
$dias_diferencia = $segundos_diferencia / (60 * 60 * 24); 

//Se limpia resultado negativo y decimal
$dias_diferencia = abs($dias_diferencia); 
$dias_diferencia = floor($dias_diferencia); 

}

$noches = $dias_diferencia;
}
if ($dias_diferencia < 2) 
{
echo  "<h3>Recuerda Plan Minimo 2 Noches / 3 Dias</h3>";

}


elseif ($dias_diferencia >= 2)
{

echo "Cantidad de noches: <input name='total' type='text' id='fin2' size='1' value='$dias_diferencia' maxlength='8' />";

lo que busco es que el codigo cuando me muestre un error como "Fecha Out incorrecta, Fecha de inicio es mayor" no me muestre mas.
  #6 (permalink)  
Antiguo 18/04/2009, 19:40
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Terminar una condicion if

si utilizas excepciones
http://us2.php.net/exceptions
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #7 (permalink)  
Antiguo 18/04/2009, 19:50
Avatar de jayjayjay_92  
Fecha de Ingreso: octubre-2008
Mensajes: 77
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Terminar una condicion if

Código HTML:
if (!$fon) {}

else{
	$fona = explode("/", $fon); 

if ($fona[1] < $fina[1] && $fona[0] == $fina[0] && $fona[2] == $fina[2]){
	echo "<h1>Fecha Out incorrecta</h1>";exit();
         //o bien
       die( "<h1>Fecha Out incorrecta</h1>");
}[...]
die para totalmente,si tienes en el html <body><?php tufuncion(); ?> </body> se mostrará el contenido del die y ahi parará no mostrará nada más que vaya despues de la funcion de modo que seria <body><h1>Fecha Out incorrecta</h1>, con exit en cambio pararia el script pero seguiria el codigo <body><h1>Fecha Out incorrecta</h1></body>

Bueno espero haberte sido util
  #8 (permalink)  
Antiguo 18/04/2009, 20:10
Avatar de konoyek  
Fecha de Ingreso: julio-2007
Mensajes: 268
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Terminar una condicion if

gracias por la respuesta pero ya la pude ¡dentificar con exit (); terminado cada condicion
  #9 (permalink)  
Antiguo 19/04/2009, 00:17
 
Fecha de Ingreso: marzo-2009
Mensajes: 120
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Terminar una condicion if

mmm te recomiendo que uses ajax para hacer esa comprobacion, y si esta mal que retorne el mensaje de error a una capa, asi la pagina no se recargara, o mejor usa javascript para hacer todas las comprobaciones de "fechas", emails , caracteres validos etc... hay mucha info en google y muy buenos ejemplo
  #10 (permalink)  
Antiguo 19/04/2009, 17:18
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Terminar una condicion if

la validación con javascript es en el cliente, mientras que con php es en el servidor.

es mejor hacer ambas validaciones, porque

con la validación en el cliente no sobrecargas el trabajo a php y evitas a que el usuario espere la validación de los datos ingresados, enviando un request al servidor(de hecho a mi me impacienta esperar cuando después de rellenar un formulario, al enviar php me dice que tengo algunos datos no válidos jajaja).

con php te aseguras que cualquier fallo en la validación de lado del cliente se realizará en el servidor, ejemplo cuando el usuario deshabilita el javascript y quiere enviar sus datos si no validas en la parte del servidor, pues esos datos pasan libremente a almacenarse en nuestras tablas.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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 02:36.