Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Графика > Вызов баннера ввиде скрипта,но выходит кваказябра


Автор: Jozefina 14.1.2009, 14:50
Мальчики!!!Помогите, пожалуйста!!!
в скрипте происходит вызов картинки в виде другого скрипта, в котором перерисовывается баннер
Код

<img src="/img/buttons/banner.php" border="0" width="88" height="31">

скрипт перерисовки баннера 
Код

<? $img=MAIN_PATH.'/img/buttons/'.$banner;
$im=imagecreatefromgif($img);
$textcolor = imagecolorallocate($im, 0, 0, 255);
for ($y = 0; $y < 24; $y+=8){
$im_sx = imagesx($im)-8;
$im_sy = imagesy($im)-$y-13;
imagestring($im, 1, $im_sx, $im_sy, '0', $textcolor);
}
header('Content-type: image/gif');
imagegif($im);
imagedestroy($im);
?>

а в результате получается вот такая кваказяберка.....
Код

Cannot modify header information - headers already sent by (output started at /h/local/www/htdocs/user/header.inc.php:74) in /h/local/www/htdocs/banner.php on line 11
GIF89aX��Ж�� !!""##$$%%&& ''! (("!!))#""**$##++%$$
--',,&%% ..(''"11+))$((#33-22,**%44.,,'++&--(882//*..)99311,00+==7<<6>>8550AA;@@:661EE?::5;;6//+11-CC>BB=@@;
GGBDD?KKFJJEIIDHHCNNIMMHLLGRRMQQLPPK[[VZZUYYTVVQbb]``[\\WhhcggbffaQQM[[WZZVXXTWWSffbeeacc___[^^Zqqmnnjmmijjfiiehhdssorrnяяя�����я���������������������������������������������������!щ
��n�,����X���юЂ‚ѓ„…†‡€‰Љ‹Њ‰kЌђЌ'G[_hUK5‘њ‡Џќ ѓCXidf_aQLD(Ў џ®њKjcegЁЄE@=›±‰n„°„llђЕ€З@eefW`b\Lє=*
ѕ€АА‚ВѓДЭИ‰З3ZV^`aORNGA<' Ш†Ъѓ°Д‚ЯИщДЗюътб�BEL›ѓJЪд€Aў €8ъ@сZE‹\Ф�сѓЏчј±yґПP2}&Q:0ҐK›,Jђ�isC„6 
,P@0±з5Ќ@ЃюґиУ7‘$G:йЂiS•Jљ$i#У†‹6phЈ3B„ћB}Љ цcИЂI“К§І)А§юЋ Щ!д ЉmдlЎЃ`‰’L8иOш”о+9LeІ‚hШаЎѓ^
mРFA=”4XДHЭ¦M ч±J*^ДГњЎ …ѕm ё�Шф`ЯDНE«єxА“яЮ>­РЖБA®·џ·№ АWЋ±cМѕ±ыЗmЁп}Z3\'ЅєъХMА и
2ю‡Њ>^јЂБF‹я-¬ а °АВ)¤ЂA T`В#@ ! dp[�ћiРЮ pќ|‚Рg€…$Р—є а^‡„@в "ѕё h(‡>РЂЊ0ГЈ"P Ђ�
Iе•YryйFhnкй–g5)*'#ЋjЄ!ҐћЄк—«¶*y°Ж*무Цjл­ёжzk �;

Автор: theworldcreator 14.1.2009, 15:20
Уберите символ перевода строки("Enter") перед <?php во втором файле. Весь файл должен начинаться с <?php а не с пустой строки

Автор: skyboy 14.1.2009, 16:15
кстати говоря,
Цитата

Вызов баннера ввиде скрипта,но выходит кваказябра,

не верно. выводится баннер. просто бинарный данные картинки в формате GIF выглядят так, как и должны выглядеть - никак не похоже на читаемый текст. То, что это именно GIF-картинка, видно по сигнатуре в данных:
Цитата

GIF89aX��Ж

Ну, это на будущее. Чтоб больше не пугаться подобного.

Автор: Jozefina 14.1.2009, 16:24
Уважаемый skyboy!!!
а как же сделать так, чтобы выводился не бинарный код, а картинка.гиф с наложенным текстом?!?!?!
smile 

Автор: ksnk 14.1.2009, 17:11
Цитата

output started at /usr/local/www/gui/user/header.inc.php:74

Что за файл header.inc.php?

Автор: skyboy 14.1.2009, 18:01
Цитата(Jozefina @  14.1.2009,  15:24 Найти цитируемый пост)
а как же сделать так, чтобы выводился не бинарный код, а картинка

это вопрос? если вопрос, то сделать надо следующее: перед imagegif отправить заголовок:
Код

header('Content-type: image/gif');

что и происходит в твоем коде. одна беда: если до header + imagegif был какой-то вывод текста, то заголовки уже ушли. и ушли заголовки не картинки(image/gif), а HTML(html/text). Почему - єто самій важній вопрос. Как предположил theworldcreator(странно, что ты на его замечание никак не ответила, как будто не заметила сообщения), у тебя в одном из РНР файлов(а точнее - header.inc.php, судя по сообщению об ошибке) происходит принудительная отправка заголовков. Скорее всего, при выводе текста(echo/print) или же при наличии каких-либо символов до "<?php"(однако, так как вывод начат на строке №74, такое маловероятно). 
Так что проверь header.inc.php в строке 74 и скажи, что же ты там так хочешь вывести?

Автор: Jozefina 14.1.2009, 18:37
я не поняла, что имел ввиду theworldcreator...
если конкретно, то в 72-76 строчках header.inc.php нету вывода текста(echo/print)...
а как тогда быть?!что делать с заголовком???

Автор: bars80080 14.1.2009, 18:44
он имел ввиду удалить любые пробелы перед <?php чтоб это были самые первые сиволы в файле


Цитата(Jozefina @  14.1.2009,  17:37 Найти цитируемый пост)
если конкретно, то в 72-76 строчках header.inc.php нету вывода текста(echo/print)...

выложи, пожалуйста, код этого файла и посмотрим что делать-то

Автор: Jozefina 14.1.2009, 19:09
в файле скрипта перед <?php  ничего не стоит...
Код

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
<link rel="stylesheet" type="text/css" href="/css/style.css">
<link rel="stylesheet" type="text/css" href="/style/front.css">


<title>сайт тест</title>

</style>
</head>

<body topmargin="0" leftmargin="0" >
  <div align="center">
    <table border="0" width="1000" cellspacing="0" cellpadding="0">
      <tr>
        <td width="410" valign="bottom">
              <table border="0" width="402" cellspacing="0" cellpadding="0" height="22">
                <tr>
                  <td width="402"><img src="/user/img/menu.gif" border="0" width="402" height="22"></td>
                </tr>
              </table>
      </td>
      <td width="586"><p align="center"><img border="0" src="/user/img/spacer.gif" width="550" height="60"></td>
    </tr>
    </table>
  </div>
  <div align="center">
  <table border="0" width="1000" cellspacing="0" cellpadding="0">
    <tr>
      <td width="100%" background="/user/img/line_gray.gif" bgcolor="#EFEDED"><img border="0" src="/user/img/line_gray.gif" width="3" height="8"></td>
    </tr>
  </table>
  </div>
  <div align="center">
  <table border="0" width="1000" cellspacing="0" cellpadding="0">
    <tr><td width="21%" valign="top"><a href="#" target="_blank"><img border="0" src="/user/img/logo_login.gif" width="241" height="69" alt="главная страница"></a></td>
      <td width="79%" valign="top">
        <table border="0" width="100%" cellspacing="0" cellpadding="0">
          <tr>
            <td width="40%" background="/user/img/fon_menu.gif" valign="top">
              <table border="0" width="100%" cellspacing="3" cellpadding="0" height="69">
<!--                <tr><td class="td_commontext" width="100%"> <b>Plan:</b> <?=_T($AcntInfo["PLanName"])?> <a href="/user/plan_site.php">изменить</a></td></tr>
                <tr><td class="td_commontext" width="100%"><b><Balans:</b> <?=sprintf("%.2f", $AcntInfo["Balance"])?><b> </b>  <?if ($AcntInfo["DailyCharge"]) { echo ceil($AcntInfo["Balance"] / $AcntInfo["DailyCharge"]); } else { echo "0"; }?> дн. <a href="/user/payment.php">пополнить</a></td></tr>-->
                <tr><td class="td_commontext" width="100%"><b>Сайт:</b></td></tr>
                <tr><td class="td_commontext" width="100%"><form action="<?=getenv("SCRIPT_NAME")?>" method=post style="margin-top:0; margin-bottom:0; margin-left:0; margin-right: 0"><input type="hidden" name="change_site" value="do"><select name="Acnt_id" style="font-size: 11px; color: #000000; font-family: Verdana, San-serif; width: 281px; height=20px; margins:0" onchange="this.form.submit();"><?echo getUserSites($AcntInfo["id_us"], $AcntInfo["ID_tblAcnt"], $AcntInfo["UserId"]);?></select></form></td>
                </tr>
              </table>
            </td>
            <td width="33%" valign="top" background="/user/img/fon_menu.gif">
              <table border="0" width="100%" cellspacing="3" cellpadding="0" height="69">
                <tr>
                  <td class="td_commontext" width="100%"> Время : <b><?echo date("Y.m.d H:i:s");?></b></td>
                </tr>
                <tr>
                  <td class="td_commontext" width="100%"><a href="<?=$strMainDomain?>list.php?id=<?=$AcntInfo["lngTopDirectory"]?>"><?=$AcntInfo["strTopDirectory"]?></a> / <a href="<?=$strMainDomain?>list.php?id=<?=$AcntInfo["lngCurrentDirectory"]?>"><?=$AcntInfo["strCurrentDirectory"]?></a></td>
                </tr>
<!--                <tr>
                  <td class="td_commontext" width="100%"><?=get_session("strSiteRank")?></td>
                </tr>-->
              </table>
            </td>
            <td width="27%" valign="top">
              <table border="0" width="100%" cellpadding="0">
                <tr>
                  <td class="td_commontext" width="47%" background="/user/img/fon_menu2.gif">&nbsp;<a href="/user/settings_add.php">добавить </a></td>
                  <td class="td_commontext" width="53%" background="/user/img/fon_menu2.gif">&nbsp;<a href="<?=$strMainDomain?>login.php?action=logout"><b>выход</b></a></td>
                </tr>
                <tr>
                  <td class="td_commontext" width="47%" background="/user/img/fon_menu2.gif">&nbsp;<a href="/user/settings.php">код </a></td>
                  <td class="td_commontext" width="53%" background="/user/img/fon_menu2.gif">&nbsp;<a href="/user/settings_url.php">синонимы</a></td>
                </tr>
                <tr>
                  <td class="td_commontext" width="47%" background="/user/img/fon_menu2.gif">&nbsp;<a href="/user/settings_s.php">настройки</a></td>
                  <td class="td_commontext" width="53%" background="/user/img/fon_menu2.gif">&nbsp;<a href="/user/settings_prof.php">пароль и доступ</a></td>
                </tr>
                <tr>
                  <td class="td_commontext" width="47%" background="/user/img/fon_menu2.gif">&nbsp;<a href="/user/settings_ip.php">IP</a></td>
                  <td></td>
                  <!--<td class="td_commontext" width="53%" background="/user/img/fon_menu2.gif">&nbsp;<a href="/user/partner/"><b>партнерка</b></a></td>-->
                </tr>
              </table>
            </td>
          </tr>
        </table>
      </td>
    </tr>
  </table>
  </div>
  <div align="center">
  <table border="0" width="1000" cellspacing="0" cellpadding="0">
    <tr>
      <td width="100%" background="/user/img/line_gray_plus.gif"><img border="0" src="/user/img/line_gray_plus.gif" width="3" height="8"></td>
    </tr>
  </table>
  </div>
  <div align="center">
    <table border="0" width="1000" cellspacing="1" cellpadding="0">
      <tr>
        <td width="238" valign="top" background="/user/img/fon_advert.gif">
          <table cellSpacing="1" cellPadding="0" width="100%" border="0">
            <tbody>
              <!--<tr>
                <td class="td_commontext" width="100%"></td>
              </tr>
              <tr>
                <td class="td_commontext" align="right" width="100%" bgColor="#ffffff"><a style="FONT-SIZE: 10px; COLOR: #000000" href="http://www.agent.su/advertising.php" target="_blank"><u>Реклама
                  на agent.su</a></u></td>
              </tr>-->
            </tbody>
          </table>
        </td>
        <td class="td_commontext" width="752" valign="top">
          <b>Быстрый переход :</b>
          <table border="0" width="100%" cellspacing="3" cellpadding="0">
            <tr>
              <td class="td_commontext" width="36%" valign="top" bgcolor="#EFEDED"><?
while(list($strPageName, $strPageUrl) = each($arrHeaderPage1)) {
    if (basename( getenv("SCRIPT_NAME") ) == $strPageUrl) {
        echo "<b>";
    }
?>
                    <a href="/user/<?=($strPageUrl . "?" . $strQuery)?>">- <?=$strPageName?></a><br>
<?
    if (basename( getenv("SCRIPT_NAME") ) == $strPageUrl) {
        echo "</b>";
    }
}
?>
              </td>
              <td class="td_commontext" width="34%" valign="top" bgcolor="#EFEDED"><?while(list($strPageName, $strPageUrl) = each($arrHeaderPage2)) {
    if (basename( getenv("SCRIPT_NAME") ) == $strPageUrl) {
        echo "<b>";
    }
?>
                    <a href="/user/<?=($strPageUrl . "?" . $strQuery)?>">- <?=$strPageName?></a><br>
<?
    if (basename( getenv("SCRIPT_NAME") ) == $strPageUrl) {
        echo "</b>";
    }
}
?></td>
              <td class="td_commontext" width="30%" valign="top" bgcolor="#EFEDED"><?while(list($strPageName, $strPageUrl) = each($arrHeaderPage3)) {
    if (basename( getenv("SCRIPT_NAME") ) == $strPageUrl) {
        echo "<b>";
    }
?>
                    <a href="/user/<?=($strPageUrl . "?" . $strQuery)?>">- <?=$strPageName?></a><br>
<?
    if (basename( getenv("SCRIPT_NAME") ) == $strPageUrl) {
        echo "</b>";
    }
}
?></td></tr></table></td></tr></table></div>
  <div align="center">
  <table border="0" width="1000" cellspacing="0" cellpadding="0">
    <tr>
      <td width="100%" background="/user/img/line_gray_plus.gif"><img border="0" src="/user/img/line_gray_plus.gif" width="3" height="8"></td>
    </tr>
  </table>
  </div>
  <div align="center">
    <table border="0" width="1000" cellspacing="1" cellpadding="0">
      <tr>
        <td class="td_commontext_menu2" width="245" valign="top">
<?
if ( strstr($_SERVER["REQUEST_URI"], "partner/") ) {
    include_once("menu_partner.inc.php");
}
else if ( strstr($_SERVER["REQUEST_URI"], "advert/") ) {
    include_once("menu_advert.inc.php");
}
else if ( strstr($_SERVER["REQUEST_URI"], "links/") ) {
    include_once("menu_links.inc.php");
}
else {
    include_once("menu.inc.php");
}
?>
        </td>
        <td width="525" valign="top">

Автор: skyboy 14.1.2009, 19:51
Цитата(Jozefina @  14.1.2009,  18:09 Найти цитируемый пост)
в файле скрипта перед <?php  ничего не стоит...

та ладно. а этот самый HTML код по-твоему не выводится?!

Автор: theworldcreator 14.1.2009, 20:49
Цитата

in /h/local/www/htdocs/banner.php on line 11

Мое предположение строилось на том, что в приведенном коде header() - 10 строка(уже девятая, сообщение редактировали). Даже не обратил внимание на разумное замечание интерпретатора про точку начала вывода, теперь буду знать что он и этой информацией делится.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)