|
|
|
| Здравствуйте, написал скрипт, который выводит изображение. Таблицы из которой вывожу изображение типа InnoDB. если отсылаю заголовок на загрузку файла, то выводится ошибка
Warning: Cannot modify header information - headers already sent by (output started at D:\Sites\home\kafedra42.ru\www\sel.php:5
|
и вместо изображения появляется абракадабра.
если не отсылать заголовок на загрузку файла, то ошибка не выводится и всё равно вместо изображения появляется абракадабра. | |
|
|
|
|
|
|
|
для: kyzma
(14.11.2007 в 21:46)
| | Покажите с 1 по 5 строчки Вашего скрипта | |
|
|
|
|
|
|
|
для: kyzma
(14.11.2007 в 21:46)
| |
$query = "SELECT id_user, fio, foto FROM user";
$usr = mysql_query($query);
header("Content-type: image/*");
if ($usr)
{
echo "<table border=1 cellspacing='5'>";
echo "<tr>
<td>"."Номер"."</td>
<td>"."ФИО"."</td>
<td>"."Фото"."</td>
</tr>";
while (list ($id_user, $fio, $foto) = mysql_fetch_row($usr))
{
echo "<tr>
<td>$id_user</td>
<td>$fio</td>
<td>$foto</td>
</tr>";
}
echo "</table>";
}
else exit(mysql_error());
|
| |
|
|
|
|
|
|
|
для: kyzma
(14.11.2007 в 22:16)
| | До передачи заголовков не должно быть вывода в браузер, также перед <?php не должно быть пустых строк или пробелов | |
|
|
|
|
|
|
|
для: Faraon
(15.11.2007 в 09:50)
| | Ставлю
header("Content-type: image/*");
| в начале, то вылезает диалоговое окно, предлагающее сохранить файл скрипта (*.php).
Пожалуйста подскажите, как сделать, чтобы изображения просто выводились в броузере. | |
|
|
|
|
|
|
|
для: kyzma
(15.11.2007 в 15:23)
| | А зачем вы сообщаете браузеру, что собираетесь выводить изображение
<?php
header("Content-type: image/*");
?>
|
а затем выводите текст? Изображение совместно с текстом выводится при помощи HTML-тэга <img>, в атрибуте src которого указывается адрес изображения - этот адрес и должен указывать на скрипт выводящий изображение из базы данных (больше этот скрипт ничего выводить не должен, иначе изображение будет искажено). | |
|
|
|
|
|
|
|
для: cheops
(15.11.2007 в 16:55)
| | а если каждому изображению соответствует несколько текстовых полей, то как быть?Подскажите как для этого скрипта написать скрипт, который должен выводить только изображения
<?php
session_start();
echo "Здравствуйте, ".$_SESSION['name']."!<br>";
require_once("mysql_connect.php");
$query = "SELECT id_user, AES_DECRYPT(fio, 'секретный ключ'), foto FROM user";
$usr = mysql_query($query);
if ($usr)
{
echo "<table border=1 cellspacing='5'>";
echo "<tr>
<td>"."Номер"."</td>
<td>"."ФИО"."</td>
<td>"."Фото"."</td>
</tr>";
while (list ($id_user, $fio, $foto) = mysql_fetch_row($usr))
{
echo "<tr>
<td>$id_user</td>
<td>$fio</td>
<td>$foto</td>
</tr>";
}
echo "</table>";
}
else exit(mysql_error());
?>
|
| |
|
|
|
|
|
|
|
для: kyzma
(16.11.2007 в 22:27)
| |
<?php
...
while (list ($id_user, $fio, $foto) = mysql_fetch_row($usr))
{
echo "<tr>
<td>$id_user</td>
<td>$fio</td>
<td><img src=image.php?id_user=$id_user></td>
</tr>";
}
echo "</table>";
...
?>
|
А в файле image.php выводите изображение для записи с первичным ключом $_GET['id_user'] с выводом заголовка при помощи header(). | |
|
|
|
|
|
|
|
для: kyzma
(14.11.2007 в 21:46)
| | Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.
http://www.softtime.ru/group/id_group=12 | |
|
|
|