Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Feedeex en 29 Agosto 2011, 22:54 pm



Título: Problema con iframe
Publicado por: Feedeex en 29 Agosto 2011, 22:54 pm
Hola a todos. Tengo un iframe en el cual muestro una imágen y una breve descripcion almacenadas en una base de datos (debo usar un iframe porque sino no puedo utilizar  el header() para indicar que tipo de archivo es).

Uso el iframe así:

Código:
<iframe src="ver_upload.php?id=<?php echo $id; ?>" width="600" height="500">Error al cargar los datos</iframe>

y al cargar la página me muestra el iframe en blanco, pero además me descarga la página ver_upload.php, ¿por qué pasa eso? :huh:

Muchas gracias.


Título: Re: Problema con iframe
Publicado por: Shell Root en 29 Agosto 2011, 23:06 pm
y que se supone que contiene el archivo ver_upload.php.


Título: Re: Problema con iframe
Publicado por: Feedeex en 29 Agosto 2011, 23:30 pm
Creí que se había solucionado, pero no. Esto está muy loco. Si uso por ejemplo "id=1" me quiere descargar ver_upload.php, pero si uso "id=5" me dice:

Citar
No se puede mostrar la imágen [...] porque contiene errores

Les dejo tanto el archivo que utilizo para subir imágenes, como el que uso para mostrarlas:

proceso.php (sube imágen)

Código:
<?php
include ('conexion.php');
 if(isset($_POST['crear_articulo'])) {
    $tipo_imagen = explode('image/', $_FILES['imagen']['type']);
$x = $tipo_imagen[1];
if($x == 'gif' || $x == 'jpg' || $x == 'jpeg') {
    if($x == 'gif') {
$image = imagecreatefromgif($_FILES['imagen']['tmp_name']);
         ob_start();
         imagegif($image);
         $_output = ob_get_contents();
         ob_end_clean();
} else {
$image = imagecreatefromjpeg($_FILES['imagen']['tmp_name']);
         ob_start();
         imagejpeg($image);
         $_output = ob_get_contents();
         ob_end_clean();
}
$tipo = 'Bombilla';
$out = str_replace('##','##',mysql_escape_string($_output));
     $result = mysql_query("INSERT INTO articulos (imagen, tipo, tipo_imagen) VALUES ('$out', '$tipo', '$x')", $conexion) or
  die('Error al guardar informacion en la base de datos: '.mysql_error());

$ID = mysql_query("SELECT id FROM articulos WHERE imagen='$out'", $conexion) or
  die('Error al seleccionar el ID: '.mysql_error());
$getID = mysql_fetch_assoc($ID);
$getID = $getID['id'];
  echo "<script Language='javascript'>location.href = 'index.php?accion=ver_upload&id=$getID';</script>";
} else {
    die('Extension de archivo invalida');
    }
} else {
  die('No puede acceder a esta pagina manualmente');
}
?>

ver_upload.php (muestra la imágen indicada por "id=")

Código:
<?php
include('conexion.php');
if(isset($_GET['id'])) {
 $id = trim($_GET['id']);
 header('Content-Type: image/'.$tipo_imagen);
 $consulta = mysql_query("SELECT * FROM articulos WHERE id='$id'", $conexion) or
    die('Error al consultar con la base de datos: '.mysql_error());
if(mysql_num_rows($consulta) == 0) {
    echo 'El ID indicado no es valido';
 } else {
  while($row = mysql_fetch_array($consulta)) {
    $tipo = $row['tipo'];
$imagen = $row['imagen'];
$tipo_imagen = $row['tipo_imagen'];
}
if($tipo_imagen == 'jpg' || $tipo_imagen == 'jpeg') {
    $tipo_imagen = 'jpeg';
} else {
   $tipo_imagen = 'gif';
  }
header('Content-Type: image/'.$tipo_imagen);
echo "<b>Tipo de articulo</b>: ".$tipo."<br>";
echo "<b>Imagen</b>:<br>";
print $imagen;
 }
 } else {
  echo 'No se ha indicado el ID';
  }
?>