Foros del Web » Programando para Internet » PHP »

Controlar las Excepciones

Estas en el tema de Controlar las Excepciones en el foro de PHP en Foros del Web. Buenas, a ver si me podéis echar un cable, lo que quiero hacer es controlar las excepcioens con el try catch típico por ejemplo, tengo ...
  #1 (permalink)  
Antiguo 03/05/2011, 02:40
 
Fecha de Ingreso: abril-2011
Mensajes: 13
Antigüedad: 13 años, 1 mes
Puntos: 1
Controlar las Excepciones

Buenas, a ver si me podéis echar un cable, lo que quiero hacer es controlar las excepcioens con el try catch típico por ejemplo, tengo una aplicación web con los típicos formularios, bueno dichos formularios, sus valores los introduzco en una abse de datos, bueno pues quiero que si alguien mete un valor (un caracter por ejemplo) en un campo donde deba ir un entero, en vez de darme falloy se me cuelgue la página me lo controle con una excepción y salte un mensaje de javascript por ejemplo, porque a la hora de pasar el dato por $_POST se convierte automáticamente en "string"... por ejemplo, este es un error típico donde, en mi base de datos debe introducirse un valor "date" y yo introduje un "2".

PHP Warning: pg_query() [<a href='function.pg-query'>function.pg-query</a>]: Query failed: ERROR: invalid input syntax for type date: &quot;2&quot; in E:\Otras Aplicaciones\Feria\comunes\comun.php on line 70

He intentando poenr try catch pero en vano... no sé muy bien qué hacer... alguna idea??

Gracias y un saludooo
  #2 (permalink)  
Antiguo 03/05/2011, 02:59
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Controlar las Excepciones

En cuanto al try:

Código PHP:
try {
 
//lo que sea
} catch (Exception $e) {
    echo 
'Excepción capturada: ',  $e->getMessage(), "\n";

Por tanto $e es el tipo de excepción.
Ahora bien, lo que haces es un sinsentido. Si no quieres que te aparezca un error, no lo generes ¿Por que usas try en vez de válidar los campos?
¿Es muy díficil hacer un is_numeric?
Hay muchísima información para validar los campos de un formulario.

Échale un ojo a las expresiones regulares y deja la locura de los try y los catch
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #3 (permalink)  
Antiguo 03/05/2011, 04:24
 
Fecha de Ingreso: abril-2011
Mensajes: 13
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Controlar las Excepciones

Cita:
Iniciado por IEKK Ver Mensaje
En cuanto al try:

Código PHP:
try {
 
//lo que sea
} catch (Exception $e) {
    echo 
'Excepción capturada: ',  $e->getMessage(), "\n";

Por tanto $e es el tipo de excepción.
Ahora bien, lo que haces es un sinsentido. Si no quieres que te aparezca un error, no lo generes ¿Por que usas try en vez de válidar los campos?
¿Es muy díficil hacer un is_numeric?
Hay muchísima información para validar los campos de un formulario.

Échale un ojo a las expresiones regulares y deja la locura de los try y los catch
Vale si, lod el is_numeric sirve para los campos de tipo integer y demás...
pero apra el ejemplo que di antes de la fecha... no serviría puesto que se pueden meter caracteres "/" o letras o numeros...

¿Cómo podría validar un campod e tipo date?
  #4 (permalink)  
Antiguo 03/05/2011, 04:33
 
Fecha de Ingreso: abril-2011
Mensajes: 13
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Controlar las Excepciones

Además, yo decía controlar las excepciones para caso de tipo integer por este caso, que supongo que tendrá una mucho mejor solución que controlar la excepción... es tontería, pero ahroa mismo no caigo, el caso es:

Un formulario con un campo no obligatorio, no introduzco nada en dicho campo, el valor que me coge es '', cuando llamo a la función que me va a introducir en una tabla dichos campos puse yo que si el valor es "vacio" me tomará el valor null, el caso es que yo intento tener una sola función para insertar, pero me da error porque por ejemplo ese campo (llamémoslo teléfono) es null... y no es plan de crear...

if telefono == null
insert into bla bla
else if cp == null
insert into bla bla
else
insert into bla bla

Es un coñazo y redundante no?

Por eso quiero yo controlar las excepciones...

PHP Warning: pg_query() [<a href='function.pg-query'>function.pg-query</a>]: Query failed: ERROR: syntax error at or near &quot;,&quot;
LINE 3: values ('qwe', 'qwe', , 'qwe', 2, '',
^ in E:\Otras Aplicaciones\Feria\comunes\comun.php on line 33

Ese es el error por ejemplo... en verdad la pega es que me muestra tb la coma...

aquí mi función

Código PHP:
function crear_persona($con$nif null$nombre_apellidos null$telefono null$direccion null$cp null$mail null$numero null$planta null$puerta null$cod_municipio null$cod_provincia null$cod_pais null){

           
$res pg_query ($con"insert into feriantes (nif, nombre_apellidos, telefono, direccion, cp, mail, numero, 
                                                    planta, puerta, cod_municipio, cod_provincia, cod_pais) 
                                                values ('$nif', '$nombre_apellidos', $telefono, '$direccion', $cp, '$mail',
                                                        $numero, '$planta', '$puerta', $cod_municipio, $cod_provincia, $cod_pais)"
);
    
  } 
Existe alguna forma así facilona? o tendré que escribir muchas opciones según el dato introducido... como dije antes, muchos insert into...
  #5 (permalink)  
Antiguo 03/05/2011, 05:25
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Controlar las Excepciones

Que tal lordblackred,

Primero, siempre deberías validar y filtrar los datos del usuario, claro que es molesto hacerlo a base de if's, pero bueno, hacerte una clase para tal fin no es algo complicado y segundo el set de funciones pg_* no maneja excepciones, en su lugar deberías utilizar PDO.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 04/05/2011, 05:58
 
Fecha de Ingreso: abril-2011
Mensajes: 13
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Controlar las Excepciones

Bueno pues al final lo he hecho a base de if, que si es numérico, que si su longitud es mayor a un carácter, que si que si es un campo vacío... etc etc, me he llevado un buen rato pero al final queda bastante bien, mucho codigo, aunque creo que se puede simplificar mucho más pero ya paso de modificarlo... algún día quizás jaja

Muchas gracias a todos!!

Un saludo!!!

Etiquetas: controlar, excepciones
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 03:09.