Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Warning: Cannot modify header information - headers already sent by
 
 автор: UnlikeAO   (09.08.2008 в 00:29)   письмо автору
 
 

Народ, помогите пожалуйста, кто знает. Целый день сижу над одной дебильной ошибкой. .. надо закинуть картинку в базу данных, а потом ее оттуда вытащить.
<b>вот код закидывания:</b>

<?
print("Имя файла на нашем сервере (во время запроса): ".$Avator."<br>");
print("Имя файла на компьютере пользователя: ".$Avator_name."<br>");
print("MIME-тип файла: ".$Avator_type."<br>");
print("Размер файла: ".$Avator_size."<br><br>");
$today = date("Y-m-d");
$f=fopen("$Avator","rb"); // имя файла или картинки -- открыли файл на чтение
$upload=fread($f,filesize($Avator)); // считали файл в переменную
fclose($f); // закрыли файл, можно опустить
$upload=addslashes($upload);
switch ($action) {
case "1" :
$db = mysql_connect("localhost", "kkkkkkkk" , "12345");
mysql_select_db("MainBase", $db);
mysql_query("INSERT INTO People(Nickname, Password, Email, FirstName, LastName, Age, Sex, DateOfReg, Quote, AboutMe, Country, City, Avator) VALUES ('$Nickname','$Password','$Email','$FirstName','$LastName','$Age','$Sex','$today','$Quote','$AboutMe','$Country','$City','$upload')");

<b>А вот код вывода</B>
<?

$db = mysql_connect("localhost", "kkkkkkkk" , "12345");
mysql_select_db("MainBase", $db);
$res=mysql_query("SELECT Avator FROM People WHERE id='2'")
or die("SQL ERROR in line ".__LINE__.", function mysql_query");
$myrow = mysql_fetch_array($res);


$image=mysql_result($res, 0); // берем переменную из б.д.
header ("Content-type: image/jpeg");
echo $image;

?>

Судя по базе данных все данные заносятся, и фотка тоже... (килобайты совпадают)
при выводе фотки пишется ошибка
Warning: Cannot modify header information - headers already sent by (output started at z:\home\hokkubattle.ru\www\new.php:9) in z:\hom.........
а потом выводится всякая лажа, ввиде немыслемых символов якобы текста вместо картинки, я уже не могу смотреть на этот код!!!)))))

  Ответить  
 
 автор: neokortex   (09.08.2008 в 00:51)   письмо автору
 
   для: UnlikeAO   (09.08.2008 в 00:29)
 

header ("Content-type: image/jpeg"); 

ошибка где-то здесь
говорит о том что нельзя изменить header, т.к. он указан выше. Т.е. вам надо что бы перед этим вообще ничего не было.
там в общем смотрите

  Ответить  
 
 автор: Trianon   (09.08.2008 в 00:54)   письмо автору
 
   для: UnlikeAO   (09.08.2008 в 00:29)
 

output started at z:\home\hokkubattle.ru\www\new.php:9

  Ответить  
 
 автор: cheops   (09.08.2008 в 11:56)   письмо автору
 
   для: UnlikeAO   (09.08.2008 в 00:29)
 

Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.

Изображения и текст следует выводить в разных файлах - это два разных по типу документа. Изображения в HTML-текст вставлять при помощи тэга <img>
<img src='image.php'>

  Ответить  
 
 автор: UnlikeAO   (09.08.2008 в 12:57)   письмо автору
 
   для: cheops   (09.08.2008 в 11:56)
 

Огромное спасибо!!!! Все работает!!!!!!! Вот конечный код:
<?
$db = mysql_connect("localhost", "kkkkkkkk" , "12345");
mysql_select_db("MainBase", $db);
$res=mysql_query("SELECT Avator FROM People WHERE Nickname='$p'")
or die("SQL ERROR in line ".__LINE__.", function mysql_query");
$image=mysql_result($res, 0); // берем переменную из б.д.
header ("Content-type: image/jpeg");
echo $image;
?>

Без пробелов, без HTML тегов..

СПАСИБО!!!!))))))))))))))))))

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования