Foros del Web » Programando para Internet » PHP »

preguntonta

Estas en el tema de preguntonta en el foro de PHP en Foros del Web. tengo el siguiente codigo en el cual consulto a una base de datos y me devuelve una imagen, pero me da error cuando no existe ...
  #1 (permalink)  
Antiguo 21/02/2003, 14:25
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 15 años, 1 mes
Puntos: 2
preguntonta

tengo el siguiente codigo en el cual consulto a una base de datos y me devuelve una imagen, pero me da error cuando no existe la imagen y estoy intentando poner una imagen con el mensaje de error para cuando no exista la imagen en la base de datos.
Y no logro que ande y se que es una tonteria..

<?php

$x_size = $ancho;
$y_size = $alto;
$variable = $modo;

$imagen = 'http://miserver/phptest/ventana.php?NUM_FIR=';

$bloques=explode("=",$imagen);

$imagen=$bloques[0]."=".$variable;

$nombreimagen = $imagen;
$tamanio = getimagesize($nombreimagen);

if ($tamanio == 0)
{
$error = 'C:\Inetpub\wwwroot\phptest\funcionarios\error.png ';
echo '<td ><img src=', $error , ' ></td>';
}

// se obtienen las dimensiones de la imagen
$srcx = $tamanio[0];
$srcy = $tamanio[1];

echo "<IMG SRC='$nombreimagen' >";

?>

este seria +o- el un ejemplo
  #2 (permalink)  
Antiguo 21/02/2003, 14:56
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

El problema es que getimagesize() devuelve false solo cuando no existe el fichero. Pero como tu estas usando un script para generar la imagen, el fichero que le pasas al getimagesize() existe siempre (el script) aunque no devuelva una imagen. Quizas deberias hacer la comprobacion en ventana.php. Si el campo imagen de la BD esta vacio, devuelve la imagen de error.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 21/02/2003, 15:04
Avatar de luigivirgo  
Fecha de Ingreso: enero-2003
Ubicación: Toluka mejiko
Mensajes: 150
Antigüedad: 14 años, 10 meses
Puntos: 0
o utiliza

usa la funcion
Código PHP:
if (file_exists($nombreimagen))
algo
else
 
ni madres 
kon eso kompruebas ke el archivo existe
__________________
no olvides visitar tu propia komputadora en
http://computadora.de
http://paginaweb.de/luigivirgo/luis.jpg
  #4 (permalink)  
Antiguo 21/02/2003, 15:05
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 15 años, 1 mes
Puntos: 2
Gracias por la respuesta pero en ventana.php como pregunto si existe o no la imagen este es mi codigo
<?php
$id = "$NUM_FIR";
$FileErr = "C:\Inetpub\wwwroot\phptest\funcionarios\error.png ";

$StringQuery = "select * from mitabla_cliente where cql_recno=$id";
$ConnectServerID = odbc_connect( $ServerName, sa, sa);

if( $ConnectServerID ) {

$ResultQueryID = odbc_do( $ConnectServerID, $StringQuery);

if( $ResultQueryID > 0 ) {
$datrec = odbc_result( $ResultQueryID, "dat_rec");
// header("Content-type: image/png");
echo $datrec;
}

odbc_free_result( $ResultQueryID );
odbc_close( $ConnectServerID );
}
?>

Salu2
  #5 (permalink)  
Antiguo 21/02/2003, 15:19
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Supong que dat_rec es el campo de la BD que contiene la imagen. Cuando no tienes guardara la imagen, supongo que tendra un valor NULL o vacio, depende de la BD. Cuando sea vacio lees la imagen de error y la devuelves. Seria algo asi:
Código PHP:
<?php
$id 
"$NUM_FIR";
$FileErr "C:\Inetpub\wwwroot\phptest\funcionarios\error.png";

$StringQuery "select * from mitabla_cliente where cql_recno=$id";
$ConnectServerID odbc_connect$ServerNamesasa);

if( 
$ConnectServerID ) {

$ResultQueryID odbc_do$ConnectServerID$StringQuery);

if( 
$ResultQueryID ) {
  
$datrec odbc_result$ResultQueryID"dat_rec");
// header("Content-type: image/png");
  
if (!is_null($datrec))  //  quizas tambien puede ser ''!=$datrec
  
{
    echo 
$datrec;
  } else {
    
readfile($FileErr); // devuelve el contenido de $FileErr
  
}
} else {
  
readfile($FileErr); // para el caso de que el id no exista
}

odbc_free_result$ResultQueryID );
odbc_close$ConnectServerID );
}
?>
Pruebalo. Mira exactamente que te devuelve tu BD en caso de que el campo este vacio. Porque supongo que cuando existe el id pero no tiene imagen el campo esta vacio.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 21/02/2003, 15:37
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 15 años, 1 mes
Puntos: 2
Gracias JOSEMI
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 22:05.