Para evaluar ese tipo de problemas es necesario hacer unas pequeñas pruebas:
1) llama al script dgrafica.php directamente en el URL. Ahí podras ver tal vez algùn mensaje de error que si lo llamas en votar.php por un tag de imagen HTML (<img src ...>) no veras el mensaje de error.
2) Puedes quitar o comentar por el momento la lìnea que envia cabeceras HTTP al navegador: header() ... para que veas mejor los mensajes de error si se producen.
3) El código que presentas hace consultas SQL pero no vé el mensaje de error de Mysql si este se produce, es recomendable que uses:
Código PHP:
$consulta = mysql_query($consulta,$enlace) or die (mysql_error());
por si tienes problemas de SQL.
4) En un determinado sitio .. miras los resultados que la consulta SQL te puede arrojar:
$lado=mysql_num_rows($consulta);
Pero .. no validas la situaciòn que no se devuelvan registros .. eso probocará un error en Mysql.
Código PHP:
if ($lado >0){
// generas el grafico.
} else {
// no haces nada o presentas una imagen predefinida (para que no veas la desconcertante "X" en tu navegador ...
// esto es sencillo .. por ejemplo:
//Devolvemos la imagen
header("Content-type: image/png");
readfile("no_hay_resultados.png");
exit;
}
Muchas librerías gráficas presentan sus própios mensajes de error (por lo menos los -no- referentes a funciones GD en sí) como un gráfico .. pues como estás comprobando, si tienes un problema ahí mismo .. en el script que llama al script que genera el gráfico nunca veras el real mensaje de error si no evaluas el script en forma independiente como te comento.
Un saludo,