|
|
|
| У меня такая проблема:
Картинки из базы не выводятся на страницы сайта, вернее сказать в месте, где должна быть картинка
я вижу только место под эту картинку с красным крестиком.
В денвере у меня все прет без вопросов.
Текстовые данные на сайт из таблицы выводятся.
В чем дело?
домен : www.bigskidka.ru
Откуда я вообще могу закачивать картинки? С жесткого диска она как бы приходит - я вижу, что в базе под картинку занято сколько- то места, но картинку в базе я не вижу как саму по себе.
Версия PHPMYAdmin 2.6.4-pl2 не позволяет прямо в базе задавать типы MIME - эти типы я задаю на cpanel
тип поля картинки задан как mediumblob
Админ ответил, что типа где- то мне надо задать chmod - права доступа - а где это делается и как?
Это php или еще что - в cpanel я это не нашла.
Помогите, плиз! | |
|
|
|
|
|
|
|
для: gost
(02.12.2005 в 01:23)
| | Пока не очень понятно...
1) В базе хранится путь к картинки или само бинарное содержимое?
2) Как выводится картинка на страницу? | |
|
|
|
|
|
|
|
для: cheops
(02.12.2005 в 01:42)
| | ответ1. помещаю картинку в базу, указывая путь с ж.диска моего локального компьютера. База находится на сервере моего хоста.
ответ2.
соединение с базой есть,
в файле картинка выводится вот такой строкой:
<img src=http://www.bigskidka.ru/view.php?id=$row[id]>
|
файл view.php
<?php
header ("Content-type: image/gif");
include '1.php' ;
$res=mysql_query(" SELECT * FROM PROBA WHERE id=$_GET[id] ");
while($row=mysql_fetch_array($res)){
echo $row['pix'];
};
?>
|
| |
|
|
|
|
|
|
|
для: gost
(02.12.2005 в 01:50)
| | 1) В HTML-коде конечной странице id - заполнен?
2) При непосредственном обращении к картинке по адресу http://www.bigskidka.ru/view.php?id=1 - она выводится? | |
|
|
|
|
|
|
|
для: cheops
(02.12.2005 в 13:34)
| | Выводится крестик на странице. Извините, что сно к этой теме взвращаюсь но столько времени прошло, а я так и немогу доделать сайт. | |
|
|
|
|
|
|
|
для: sunela
(24.02.2006 в 16:13)
| | так, а что все-таки в HTML-коде? или в свойствах этого крестика? какой там путь? | |
|
|
|
|
|
|
|
для: elenaki
(24.02.2006 в 16:54)
| | Вот теперь я уже просто пишу вывод из базы
пишу простейший запрос - вообще без всего типа
<?php
include '1.php' ;
$res=mysql_query(" SELECT * FROM pix");
if(!$res) exit(mysql_error());
while($row=mysql_fetch_assoc($res)){
echo $row['id'];
header ('Content-type: image/gif');
echo $row['pix'];
};
?>
Сложного вообще ничего нет-
Выдается информация
Warning: Cannot modify header information - headers already sent by
Это что функция header не подключена?
Текст, цифры все выдается, все, кроме картинок. | |
|
|
|
|
|
|
|
для: sunela
(26.02.2006 в 14:09)
| | в файле 1.php у вас что? | |
|
|
|
|
|
|
|
для: sunela
(26.02.2006 в 14:09)
| | ненавижу заголовки. не используйте их, если не умеете с ними обращаться. я обхожусь банальным Java-script'ом. по крайней мере уверена, что подобных (Warning: Cannot modify header information - headers already sent by) ошибок никогда не вылезет.
без header'a что-нибудь выводит?
вы делаете следущее после запроса:
1. выводите $row['id']; (номер картинки?)
2. вызываете заголовок (header), который обычно вызывают для переадресации, к тому же заголовок не будет работать, если перед ним есть какой-то вывод в бразуер. а у вас - echo! к к тому же какйо-то инклуд, в котором тоже, возможно, есть вывод в браузер.
3. опять выводите (теперь уже саму картинку?)
просто echo $row['pix']; что выдает? | |
|
|
|
|
|
|
|
для: elenaki
(26.02.2006 в 14:58)
| | Выводит бинарное содержимое файла в виде текста. | |
|
|
|
|
|
|
|
для: sunela
(26.02.2006 в 22:02)
| | Файл 1.php- коннект с базой- он работает нормально
на вывод echo $row['id'] - выводятся номера картинок
Без header выводится текст вместо картинки
GIF89add„^.‰)ø°“ï˜ùÿùmÕpPÀRØüÛ.J´IÉýËæþè и так далее
Мне очень кажется, что не работает функция header
Админ хоста написал мне, что я должна чего- то там добавить в файл php.ini
Где его искать ?
И самое главное- чего дописать?
Код исправила на такой:
<?php
include '1.php' ;
$res=mysql_query(" SELECT * FROM pix ");
while($row=mysql_fetch_array($res)){
echo $row['pix'];
};
?>
|
И еще не работает такой код -
$im = imagecreatefromstring($row['pix']);
- проверяла. | |
|
|
|
|
|
|
|
для: sunela
(26.02.2006 в 23:01)
| | По-моему, Вам нужно для начала заставить работать вот такой код (вместо 9999 должен быть реальный номер картинки.
<?php
header ("Content-type: image/gif");
include '1.php' ;
$res=mysql_query(" SELECT * FROM pix WHERE id = 9999 ");
while($row=mysql_fetch_array($res)){
echo $row['pix'];
};
?>
|
WHERE я добавил для того, чтоб исключить появление в выходном потоке тел сразу нескольких картинок.
Чтобы отлавливать ошибки, нужно не смотреть отклик в браузере, а записать его в файл.
Т.е. написать ссылку на тестируемый код, но не переходить по этой ссылке, а (в терминах IE)клик правой кнопкой, "сохранить объект как..." и записать в файл.
Файл этот затем нужно сравнивать с оригиналом, который Вы заносили в базу через phpMyAdmin. | |
|
|
|
|
|
|
|
для: sunela
(26.02.2006 в 14:09)
| | 1) Посмотрите нет ли пробелов, переводов строк до тэга <?php - если есть, то удалите...
2) На какую строку ссылается предупреждение? | |
|
|
|
|
|
|
|
для: cheops
(26.02.2006 в 23:10)
| | пробелов нет- проверено
Если нет header, то нет никаких строк ошибок вообще- просто
выводится кусок текстовых символов. | |
|
|
|
|
|
|
|
для: sunela
(26.02.2006 в 23:13)
| | 1) Без header ("Content-type: image/gif"); будут выводится бинарные данные - его добавьте обязательно.
2) А в 1.php до и после тэгов <?php ?> нет пробелов или переводов строк? | |
|
|
|
|
|
|
|
для: cheops
(26.02.2006 в 23:19)
| | Вот только добавляю header и так далее, - сразу ошибка в этой строке.
типа:Cannot modify header information - headers already sent by и путь и номер строки соответственно.
Пробелов нет и в файле 1.php тоже.
Это, что , не хватает чего- то на хосте? | |
|
|
|
|
|
|
|
для: sunela
(26.02.2006 в 23:28)
| | так у вас КАРТИНКИ в базе??? не пути к ним?
вот в чем ошибка! у хостера, наверняка, русский Apache!
проблема в кодировках. какие-то символы или цепочки
символов русский Apache воспринимает как специальные.
надо поискать, где-то была тема про вывод из BLOB...
=========================================
http://linuxportal.ru/forums/index.php/t/12511/
=========================================
цитата:
Вобщем, проблема в перекодировке файлов. В конфиге апача надо прописать
CharsetDisable On. Тогда картинки показываются как надо, но не происходит автоматического определения кодировки браузера у юзера, поэтому с большой вероятностью кодировка сервера и юзера не совпадут...Хотя зубры говорят, что перекодирование замедляет работу скриптов.А вообще по=хорошему, надо перенсти скрипт, который возвращает дату картинки и скрипт, который пользуется этим скриптом, перенести куда-нить в отдельный каталог и там в файле access.conf написать про CharsetDisabled On. Тогда перкодирование отключится только в этом каталоге. | |
|
|
|
|
|
|
|
для: elenaki
(27.02.2006 в 11:31)
| | Вот еще админ мне ответил:
типа , что надо использовать не header
а output_handler
Что это и с чем его надо есть?
Про апач я ему напишу. Спасибо. | |
|
|
|
|
|
|
|
для: sunela
(27.02.2006 в 12:46)
| | Про апач мне аджмин написал, что он не русский.
Так же сказал, чтобы я необольщалась, и конечное ничего для меня лично он переделывать не собирается.
Ту функцию, которую он мне сказал, что люди мол, с неее выводят это output_hendler
-вообще оказалось, что она до версии 4.3 - работала, а теперь работает header как у меня и есть. Кстати, на сервере у него версия 4.4.2 PHP
Его php.ini я со своим сравнила весь, оказалось только что у него не прописан путь к динамически подгружаемой библиотеке расширений, файл вроде называетс я extension
Это имеет критическое значение? | |
|
|
|
|
|
|
|
для: sunela
(28.02.2006 в 00:33)
| | а при внесении в базу в файле не могут экранироваться спецсимволы или еще что-нибудь? | |
|
|
|
|
|
|
|
для: Loki
(28.02.2006 в 10:21)
| | В базу я вношу картинку непосредственно с помощью My Admin- просто закачиваю ее
с ж.д моего компьютера нажимаю обзор и указываю путь с диска- она вроде как закачивается,
т.к появляется ее размер, хотя визуально я ее не вижу. | |
|
|
|
|
|
|
|
для: sunela
(28.02.2006 в 12:31)
| | а размер полностью совпадает с размером файла на диске?
если взять картинку из базы и сохранить в файл - он идентичен исходному? | |
|
|
|
|
|
|
|
для: sunela
(26.02.2006 в 23:13)
| | Кстати, очень может быть, что пробелы у Вас лезут не из основного скрипта, а из файла, включаемого командой include '1.php' . В 1.php (если он подключается ранее вызова header("Content-type:...")) тоже не должно быть пробелов, пустых строк и прочих пустых символов вокруг скобок тегов <?php ?>. У Вас на денвере и у хостера один и тот же 1.php? Врядли... | |
|
|
|
|
|
|
|
для: Trianon
(01.03.2006 в 15:28)
| | все наконец- то получилось!
Всем громадное спасибо!
Особенно elenaki, не дали пасть духом в трудную минуту.
Все пришлось переделать- в базу написала просто пути к картинке, а не саму картинку.
Видимо, чего- то у них там на хосте неконтачит с графикой.
Еще по поводу пробелов и переводов строк- все чисто.
Просто есть такие хосты, где не все полный connect. | |
|
|
|