Estas cabeceras no están colocadas bien:
header("Content-Type: ".$archivo_tipo);
header("Content-Disposition: ".$content_disposition."; filename=\"".trim($filename)."\"");
Fijate donde generas "$archivo_tipo" y donde la defines ..tampoco coincide el nombre .. tu usas $tipo no "$archivo_tipo" .. igual pasa con la otra variable $filename que no existe en ese código!. Esa variable es el nombre del archivo (tendrás que obtenerla de tu consulta a tu BBDD ..).
Fijate bien en esos detalles . .aunque uno no sepa que hace el código .. ya sabes que $algo es una variable .. si no aparece en tu código te debes preguntar "de donde la tendría que obtener" ..
Como pretendes ver los archivos "en linea" (no entregarlos a descargar) .. debes usar "inline" (no "attachment") .. Todo quedaría algo así (no lo he probado ...):
Código PHP:
<?php
if(isset($_GET['ticket'])) {
// you may have to modify login information for your database server:
$conexion=mysql_connect("localhost","xxx","xxx") or die ("no se ha podido conectar a la BD");
mysql_select_db("xxx") or die ("no se ha podido seleccionar la BD");
$sql = "SELECT * FROM soporte WHERE ticket='".$_GET['ticket']."'";
$consulta = mysql_query($sql,$conexion);
$datos = mysql_result($consulta,0,"archivo_binario");
$tipo = mysql_result($consulta,0,"archivo_tipo");
$filename = mysql_result($consulta,0,"archivo_nombre"); // no recuerdo si "archivo_nombre" es el nombre del campo que contiene dicho dato .. revisalo!
header("Content-Type: ".$tipo);
header("Content-Disposition: inline; filename=\"".trim($filename)."\"");
echo $datos;
}
?>
Un saludo,