Foros del Web » Programando para Internet » PHP »

Me crea dos imágenes cuando sólo debería crear una!!!

Estas en el tema de Me crea dos imágenes cuando sólo debería crear una!!! en el foro de PHP en Foros del Web. ¿Alguien podría decirme porqué cuando cargo la página que contiene este código se me crean dos imágenes en el servidor en vez de una? SÓLO ...
  #1 (permalink)  
Antiguo 25/06/2009, 10:54
TobyMudito
Invitado
 
Mensajes: n/a
Puntos:
Me crea dos imágenes cuando sólo debería crear una!!!

¿Alguien podría decirme porqué cuando cargo la página que contiene este código se me crean dos imágenes en el servidor en vez de una? SÓLO ME OCURRE EN MOZILLA FIREFOX, EN INTERNET EXPLORER FUNCIONA CORRECTAMENTE!!!

Muchas gracias!!

Código PHP:
<?php
$codigo
"";

//Longitud de carácteres del código
$longitud 5

//Generar codigo aleatorio
for ($i=1$i<=$longitud$i++)
{
$letras chr(rand(97,122));
$codigo .= $letras;


//Crear imágen del código
$imagen=imagecreate(60,20);
$fondo=imagecolorallocate($imagen,255,255,255);
$color=imagecolorallocate($imagen,0,0,0); 

//Tipo de fuente
$font imageloadfont('font/andale12.gdf');
imagestring($imagen$font00$codigo$color);

//Guardar imágen con el nombre "imagen_codigo.png"
$string "tmp/imagen_codigo".rand(1,1000).".png";
imagepng($imagen,$string); 
?>

Última edición por TobyMudito; 25/06/2009 a las 11:08
  #2 (permalink)  
Antiguo 25/06/2009, 13:32
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Me crea dos imágenes cuando sólo debería crear una!!!

Lo primero que se me ocurre es que estes llamando dos veces al script que genera la imagen, porque PHP (ejecutado en el lado del servidor) no se ve afectado por los errores que pueda tener un navegador (cliente, ejecutado en la pc del usuario). Muestra el codigo HTML con que lo mandas llamar y, por favor, prueba en algun otro navegador como Opera, Safari o Chrome.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 25/06/2009, 14:42
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Me crea dos imágenes cuando sólo debería crear una!!!

Nota: Cuando tienes configurado el firefox para que ejecute varias conexiones a la vez para acelerar la velocidad de navegación puede ocurrir lo que te esta pasando.
  #4 (permalink)  
Antiguo 26/06/2009, 02:33
TobyMudito
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Me crea dos imágenes cuando sólo debería crear una!!!

Lo acabo de probar en Chrome y también me crea sólamente una imágen, imagino que como dice abimaelrc es una cuestión particular del Firefox, pero es un fastidio ya que quien use Firefox provocará que se me vaya llenando el servidor de imágenes, que no deben figurar ahí, (tengo un script posterior que me borra la imágen que ha creado) tendré que crear una tarea de mantenimiento diario que borre esa carpeta en linux, aunque no se como hacerlo... (ya buscaré información).

Respecto a lo que me comentas del código HTML comentarte que el código php se encuentra en la cabecera del código y que se ejecuta siempre, no tiene llamada como tal a ninguna función.

Muchas gracias y a ver si consiguieramos saber como evitar que Firefox ejecute dos veces la página.
  #5 (permalink)  
Antiguo 26/06/2009, 13:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Me crea dos imágenes cuando sólo debería crear una!!!

Hay manera de detectar si el acceso es un prefetch y bloquearlo.

Googleado y tomado de: http://xoops-tips.com/news-article.storyid-103.htm
Código php:
Ver original
  1. //stop prefetching
  2. if ((isset($_SERVER['HTTP_X_MOZ'])) && ($_SERVER['HTTP_X_MOZ'] == 'prefetch')) {
  3.     header('HTTP/1.0 403 Forbidden');
  4.     echo '403: Forbidden<br><br>Prefetching not allowed.';
  5.     exit;
  6. }
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 26/06/2009, 13:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Me crea dos imágenes cuando sólo debería crear una!!!

Cita:
Iniciado por Triby Ver Mensaje
Código php:
Ver original
  1. //stop prefetching
  2. if ((isset($_SERVER['HTTP_X_MOZ'])) && ($_SERVER['HTTP_X_MOZ'] == 'prefetch')) {
  3.     header('HTTP/1.0 403 Forbidden');
  4.     echo '403: Forbidden<br><br>Prefetching not allowed.';
  5.     exit;
  6. }
Pero el codigo lo que hara es no permitir ver la pagina. Pregunto, ¿no seria mejor verificar si se ha enviado varias veces la pagina y seleccionar la primera vez que se envio solamente?
  #7 (permalink)  
Antiguo 26/06/2009, 15:01
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Me crea dos imágenes cuando sólo debería crear una!!!

Este codigo evitara que la pagina sea "pre-cacheada", mas no impedira que se muestre correctamente cuando pulses en el enlace o teclees la URL en la barra de direcciones.
__________________
- León, Guanajuato
- GV-Foto
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:45.