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

Форум PHP

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

 

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

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

тема: header выдает кракозябры вместо картинки
 
 автор: serjinio   (02.05.2008 в 15:53)   письмо автору
 
 

Запускаю скрипт на локалке
session_start(); 
session_register('code'); 
$_SESSION= rand(1000000,9999999);

for($i = 0; $i < 7; $i++) { 
    $arr[$i] = substr($_SESSION['code'],$i,1); 
 
$im = imagecreate(130,40); 
imagecolorallocate($im,255,255,255); 
$a = 0; 
for($i = 0; $i < 7;$i++) 

$color=imagecolorallocate($im,rand(0,250),rand(0,250),rand(0,250)); 
imagestring($im,3,$a+=15,0,$arr[$i],$color);

header("Content-type: image/jpeg"); 
imagejpeg($im,'',100);


в мозиле получаю http://localhost/data/captcha/captcha.php т.е путь до скрипта
,а в IE

“–¦hиVзДJUjJЅ|6ѕ!КRҐBU Vј§WкфйК¤§RтБ6їkOЌµЯЂїhї|wшmб„~8ш7ы]|]эџ?б^шGSџДр‹iї4oЮяaшџЕџЫ
ZЖ‘гOиљї‰uЌZсЏ…aря…рзцПЃtП xgвеЧ€јtя~фш}аOь2рnѓа_ Зu‰быY-нZъеЇ/n%№єёїїѕјёeDk­CQ»»ѕёKhm¬Ў–бб°ііІЋЮЦ•k/Ш‡GэЇЮш’лВ?Ї.~#|ш‘
в­WY±ѓД·:mЗ†хOржъКЗO’лБ2к"ыPѕыЯ+рЦ]Д9Oг—c2zN&Ћvсфslm*™„тjШzXЊ=,’•:Х±уIТДRu°сАтВs­‡Т
ќ'б(cV_Bњ¦еЋЌ4kN§пЦЊiэb\ТЌ8ёН©лA»®XЖц_nWб§н{яMшЏы>ь]э¬|7б­'б\ЪмЌя 

Вместо картинки...
Что за бред...может где-то в настройках php.ini что-то исправить???

   
 
 автор: serjinio   (02.05.2008 в 22:32)   письмо автору
 
   для: serjinio   (02.05.2008 в 15:53)
 

И что никто не сталкивался..???

   
 
 автор: Atheist   (02.05.2008 в 22:46)   письмо автору
 
   для: serjinio   (02.05.2008 в 22:32)
 

Такое развитие событий я вижу только в одном случае: вывод ошибок подавлен и присутствует какой-то вывод данных до потока картинки.

   
 
 автор: Киналь   (02.05.2008 в 22:47)   письмо автору
 
   для: serjinio   (02.05.2008 в 15:53)
 

Попробуйте разные content-type'ы. Может, у ИЕ индивидуальная непереносимость конкретно этого)

   
 
 автор: Atheist   (02.05.2008 в 22:59)   письмо автору
 
   для: Киналь   (02.05.2008 в 22:47)
 

Может у IE еще непереносимость на text/html? :)

   
 
 автор: AnddA   (03.05.2008 в 00:52)   письмо автору
 
   для: Atheist   (02.05.2008 в 22:59)
 

Сохраните скрипт в кодировке UTF-8 без BOM.

   
 
 автор: serjinio   (03.05.2008 в 01:05)   письмо автору
 
   для: AnddA   (03.05.2008 в 00:52)
 

Что означает" без BOM"

   
 
 автор: radu89   (03.05.2008 в 01:08)   письмо автору
 
   для: AnddA   (03.05.2008 в 00:52)
 

A u tea Bibblioteka GD ustanovlena??

   
 
 автор: sim5   (03.05.2008 в 01:33)   письмо автору
 
   для: serjinio   (02.05.2008 в 15:53)
 

Во-первых в коде забыта закрывающая скобка. Во-вторых, если крякозябрики, то уже был вывод в браузер (сообщение об отсутствие $end, хотя бы), в третьих: $_SESSION['code'] = rand(1000000,9999999);

<?
session_start
();  
$_SESSION['code'] = rand(1000000,9999999);
for(
$i 0$i 7$i++) {
  
$arr[$i] = substr($_SESSION['code'],$i,1);
}
$im imagecreate(130,40);
imagecolorallocate($im,255,255,255);
$a 0;
for(
$i 0$i 7;$i++) {  
  
$color=imagecolorallocate($im,rand(0,250),rand(0,250),rand(0,250));  
  
imagestring($im,3,$a+=15,0,$arr[$i],$color); 
}
header("Content-type: image/jpeg");  
imagejpeg($im);
imagedestroy($im);

   
 
 автор: Usta   (03.05.2008 в 03:01)   письмо автору
 
   для: sim5   (03.05.2008 в 01:33)
 

>A u tea Bibblioteka GD ustanovlena??
На локал хосте по умолчанию она должна быть включена.


Первое header("Content-type: image/jpeg"); убрать если не будит работать оставить
второе в файле вызова картинки вызывать <img src='captcha.php'>

   
 
 автор: sim5   (03.05.2008 в 03:16)   письмо автору
 
   для: Usta   (03.05.2008 в 03:01)
 

>Первое header("Content-type: image/jpeg"); убрать если не будит

И т.д., наугад убирать по одной строке... Все работает.

   
 
 автор: Usta   (03.05.2008 в 03:52)   письмо автору
 
   для: sim5   (03.05.2008 в 03:16)
 

Почему на угад, просто я щас не помню нужно или не нужно убирать, у меня такой же трабл был, исправил и все работает. Завтра точно скажу не на своем компе сейчас.

   
 
 автор: serjinio   (03.05.2008 в 03:50)   письмо автору
 
   для: sim5   (03.05.2008 в 01:33)
 

в каком месте не закрыта скобка? графическая библиотека установлена...
Утром попробую убрать
header("Content-type: image/jpeg");
..глаза слипаются...

   
 
 автор: sim5   (03.05.2008 в 03:55)   письмо автору
 
   для: serjinio   (03.05.2008 в 03:50)
 

Я написал выше, как должно быть, и все работает, там и скобка вставлена (первый цикл не закрыт). Заголовок убирать не надо.

   
 
 автор: serjinio   (03.05.2008 в 10:11)   письмо автору
 
   для: sim5   (03.05.2008 в 03:55)
 

проверил тоже самое ,сменил кодировку на UTF-8..без изменения ,вот что дает в коде..


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
яШяа JFIF      яю >CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality
яЫ C         

 $.' ",#(7),01444'9=82<.342яЫ C             

2!!2222222222222222222222222222222222 2222222222222222яА  ( ‚" яД               
яД µ   } !1AQa"q2Ѓ‘Ў#B±БRСр$3br‚    
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzѓ„…†‡€‰Љ’“”•–—&#152;™љўЈ¤Ґ¦§Ё©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФХЦЧШЩЪбвгдежзийкстуфхцчшщъяД            
яД µ  w !1AQaq"2ЃB‘Ў±Б    #3RрbrС
$4б%с&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ѓ„…†‡€‰Љ’“”•–—&#152;™љўЈ¤Ґ¦§Ё©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФХЦЧШЩЪвгдежзийктуфхцчшщъяЪ    ? чъBB©f  2IнKH@e*АF=и¤­=йЊ&ШЊ{ХЏVзъUкw?‡Їu [ґMnXщЗP sЂO°<Ћµu-!ЉгОЌB›6Ё uО~ґ—¶‹}e-іM<"EЗ™†7CШ†йл‘Bудcxw_“VФu['љТйlљ-—Vњ$ЎЧ8ЖждFw~X­{й®!Ћ3oцi‘·8уФ:Ї¦иРй·W—~|чWЊ†i¦+–
»Ta@P ПlуН^љ/9щЋ„C!Бя лэ
)кґ3љ“ѓKr+)НДNYЃtrЊmЪGn§щТ]\ґ2Г•_0џ™Ѓ8АйЃФљ’ЮЩ-‘•K1w.МЭI=йeЃexЯs+ЖNЦ\qћЅjm._2m?f—_лфg9№µЋVP @ъв°ьYвџм 9cІ·ыf©цwёKqТ8РТИ{ ЗХЏК=FьҐј+gjЋ3YЪЗ‡4ќv’юЖЮId„В. (eЌN~лpFI†єp®њgY]u4‚’ЉRЬ›DЅ“RР4лщ•[›X¦pЂ… К    Ж{sXљїЉgУпµгX6Xщ9‰•™ж‚Д08@$’=@®‡OІЏMУ-l!gh­ЎHP№ЉЁ gшЄ7ѕґѕё№–I'TєтюС0Ы.Гтз ‘йт‘S76ЦЗ>*5ҐЁ»?шх·ьЌzжїб!»юЦт<ё<Ї·э“fУчvзw›ќ›їШЖ{u®–Ібґы_ќжOеэ«нћFбіНЖ7gЅсњ{vЄўаЇОuЈZЉ(¬DQE QE QE QE QE QE QE QE QE QE QE QE QE QE QE QE QE QE QE яЩ</body>
</html>


это в эксплорере....убирал
header("Content-type: image/jpeg"); 
---без изменений...

Если убрать все и оставть
$im = imagecreate(130,40);
imagejpeg($im);


то видно что именно imagejpeg($im) выводит сырой поток в браузер...всю вот эту чушь,даже не используя заголовка...
такое ощущение что это связано или с кодировкой или с настройкой денвера....
проверил еще пару скриптов на вывод сырого потока тоже самое у кого работает этот скрипт скиньте httpd.conf apache может поможет

   
 
 автор: Киналь   (03.05.2008 в 14:13)   письмо автору
 
   для: serjinio   (03.05.2008 в 10:11)
 

head, body - это-то все зачем?!

   
 
 автор: serjinio   (03.05.2008 в 14:52)   письмо автору
 
   для: Киналь   (03.05.2008 в 14:13)
 

Можно и без них ..все равно те жи грабли...

   
 
 автор: sim5   (03.05.2008 в 15:02)   письмо автору
 
   для: serjinio   (03.05.2008 в 14:52)
 

Заголовок убирать нельзя, в этом случае будет запись файла на диск. Вы чистый код вывода (без всего, так как в примере) пробовали запускать?

   
 
 автор: serjinio   (03.05.2008 в 15:46)   письмо автору
 
   для: sim5   (03.05.2008 в 15:02)
 

Конечно

   
 
 автор: sim5   (03.05.2008 в 15:49)   письмо автору
 
   для: serjinio   (03.05.2008 в 15:46)
 

И что, даже в этом случае нет вывода нормального?

   
 
 автор: Atheist   (03.05.2008 в 16:07)   письмо автору
 
   для: serjinio   (03.05.2008 в 15:46)
 

> Конечно
Покажи содержимое файла с кодом от начала до конца (особенно важно начало), включая все проблелы в начале, символы "<?php" и прочее.

   
 
 автор: sim5   (03.05.2008 в 16:20)   письмо автору
 
   для: Atheist   (03.05.2008 в 16:07)
 

Если бы включение [соde][/соde] имело бы нумерацию строк, а имеющиеся пробелы (если есть) будут скопированы и вставлены... )

   
 
 автор: serjinio   (03.05.2008 в 19:46)   письмо автору
 
   для: sim5   (03.05.2008 в 16:20)
 

<?php 
$im 
imagecreate(130,40);
imagejpeg($im);
?>

это весь код,без пробелов...и он уже выдает в браузер кракозябры...

   
 
 автор: Atheist   (03.05.2008 в 19:48)   письмо автору
 
   для: serjinio   (03.05.2008 в 19:46)
 

> и он уже выдает в браузер кракозябры
Ничего удивительного. Где header("Content-type: image/jpeg");? Тебе же нормальные люди говорили не надо убирать эту строку.

   
 
 автор: sim5   (03.05.2008 в 19:57)   письмо автору
 
   для: serjinio   (03.05.2008 в 19:46)
 

Где-то до этого кода у вас происходит вывод в браузер! Заголовок тут не причем, убрав его, вы инициируете запись изображения на диск, оно вам надо?

   
 
 автор: Atheist   (03.05.2008 в 21:19)   письмо автору
 
   для: sim5   (03.05.2008 в 19:57)
 

> Заголовок тут не причем, убрав его, вы инициируете запись изображения на диск, оно вам надо?
Тут ты ошибаешься. Запись на диск происходит только при указании второго аргумента функции imagejpeg().

   
 
 автор: sim5   (04.05.2008 в 01:11)   письмо автору
 
   для: Atheist   (03.05.2008 в 21:19)
 

Ну да, не так сказал. )

   
 
 автор: serjinio   (04.05.2008 в 01:23)   письмо автору
 
   для: serjinio   (03.05.2008 в 14:52)
 

Получилось!!!! проблема была в апаче убрал вывод ошибок в браузер и добавил вывод в лог....
притом не помогло рестарт ...делал несколько раз...только после перезагрузки машины все ожило...мистика какая-то...Всем огромное спасибо за участие и помощь...тема ЗАКРЫТА!!! ...уф...

   
 
 автор: sim5   (04.05.2008 в 01:48)   письмо автору
 
   для: serjinio   (04.05.2008 в 01:23)
 

Ну вам же об этом сколько!!! раз говорили!

   
Rambler's Top100
вверх

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