Forum Webscript.Ru

Программирование => PHP => Тема начата: Fubu_By от 22 Июня 2006, 12:05:35

Название: ошибка при открытие картинок иp MySQL
Отправлено: Fubu_By от 22 Июня 2006, 12:05:35
вот мой код при его запуске выскакивает сообщение:
"The image “http://172.17.0.43/avtobrest.com/find_car.php?marka=Audi&=m” cannot be displayed, because it contains errors."




$host = "localhost";
$user_db = "root";
$pass_db = "";
$dbase = "avtobrest";

mysql_connect ($host,$user_db,$pass_db);
mysql_select_db("$dbase");

$dtable = cars;

$marka = $HTTP_GET_VARS["marka"];
$model = $HTTP_GET_VARS["model"];
$year_from = $HTTP_GET_VARS["year_from"];
$year_to = $HTTP_GET_VARS["year_to"];
$cena_from = $HTTP_GET_VARS["cena_from"];
$cena_to = $HTTP_GET_VARS["cena_to"];

if($model != NULL)
{
   $sql = "SELECT id_car FROM $dtable WHERE marka=\\"$marka\\" AND model=\\"$model\\" AND (year BETWEEN $year_from AND $year_to) AND (cena BETWEEN $cena_from AND $cena_to)";
   $result = mysql_query($sql);
   $rows = mysql_num_rows($result);
}
else
{
   $sql = "SELECT id_car FROM $dtable WHERE marka=\\"$marka\\"";
   $result = mysql_query($sql);
   $rows = mysql_num_rows($result);
}
$i = 0;
if (!$rows)
{
   echo "Данных нет";
}
else
{
   echo"
   ";
   while($row = mysql_fetch_array($result))
   {
      ++$i;
      echo"
      
      
      
      
      
      ";
   }
echo"
$i .";
      $id_car = $row["id_car"];
      $marka = mysql_query("SELECT marka FROM $dtable WHERE id_car = \\"$id_car\\" ");
      $marka = mysql_fetch_array($marka);
      $marka = $marka[0];

      $year = mysql_query("SELECT year FROM $dtable WHERE id_car = \\"$id_car\\" ");
      $year = mysql_fetch_array($year);
      $year = $year[0];

   echo"$marka, $year г.в.
      

         
         
         
         
         
         
";
         $foto1 = mysql_query("SELECT foto1 FROM $dtable WHERE id_car = \\"$id_car\\" ");
         $foto1 = mysql_fetch_array($foto1);
         $foto1 = $foto1[0];
         header("Content-type: image/gif");
         echo $foto1;
      echo"

";
         $info = mysql_query("SELECT info FROM $dtable WHERE id_car = \\"$id_car\\" ");
         $info = mysql_fetch_array($info);
         $info = $info[0];
         echo $info;
      echo"

      
";
}

?>


а если закоментировать строку header("Content-type: image/gif"); то выводится содержимое файла ввиде текста

как мне исправить ошибку???
Название: ошибка при открытие картинок иp MySQL
Отправлено: Greg от 22 Июня 2006, 12:22:55
разберись, что ты выдаешь: текст или картинку?
ты пытаешь одним выстрелом двух зайцев убить, передеавать то нужно либо то либо другое
Название: ошибка при открытие картинок иp MySQL
Отправлено: Fubu_By от 22 Июня 2006, 23:34:01
в том то и дело что мне надо вывести изображение а выводит содержимое файла gif...
rfr vyt bcghfdbnm \'ne jib,re "The image “http://172.17.0.43/avtobrest.com/fi...?marka=Audi&=m” cannot be displayed, because it contains errors."
???
Название: ошибка при открытие картинок иp MySQL
Отправлено: Greg от 23 Июня 2006, 09:27:22
Fubu_By
ты так ничего и не понял, ты выводишь вместе с текстом картинку и выдаешь один заголовок для картинки, вот тут у тебя и возникат ошибка
Название: ошибка при открытие картинок иp MySQL
Отправлено: CGVictor от 23 Июня 2006, 12:38:04
Greg
Да не пытается он ничего вместе с картинкой вывести. Он одну картинку и выводит. Когда не указывает c-t - выводится напрямую в браузер (кто бы сомневался), когда указывает - картинка выдается битая.

Вариантов может быть много. Начиная от того, как картинка хранится в базе, заканчивая настройками перекодировки вывода сервера.
Название: ошибка при открытие картинок иp MySQL
Отправлено: Greg от 23 Июня 2006, 13:15:57
CGVictor
я всегда думал, что контент-тайп для документа может быть только один
Fubu_By делает так:  
echo"$marka, $year г.в.






";


т.е выводит текст собсно говоря. А потом вот так
header("Content-type: image/gif");

т.е уже картинку. по существу то получается два заголовка. Я полагаю, что в этом проблема
Название: ошибка при открытие картинок иp MySQL
Отправлено: CGVictor от 23 Июня 2006, 13:21:22
[off]Greg
Блин, ведь и верно! Right you are!
Мой моск, привыкший к правильному коду, такое воспринять, видимо, отказался..[/off]

Тогда решение простое: вместо его вот такого "прямого" вывода писать вывод в файл в кеше, а в html на него просто ссылаться.
Название: ошибка при открытие картинок иp MySQL
Отправлено: Greg от 23 Июня 2006, 13:23:51
я делаю по другому, в отдельном скрипте вывожу картинку, а в хтмл просто ссылаюсь на этот скрипт тэгом