PDA

View Full Version : سوال: چرا ارور به header("Content-type: image/png")؟



abdollah110110
دوشنبه 04 بهمن 1389, 08:36 صبح
سلام
دوستان لطفا ببینید این کد چه اشکالی دارد؟

<? ob_start();
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
header("Content-type: image/png");
$im = @imagecreate(110, 20)
or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>
</body>
</html>
<?
ob_end_flush();
?>
به خط زیر وقتی مینویسم ارور میده و وقتی این خط رو حذف میکنم، ارور نمیده

header("Content-type: image/png");
دو روزه معطل این کدم،
لطفا کمک کنید.
خیلی متشکرم

hossin.esm
دوشنبه 04 بهمن 1389, 09:16 صبح
فکر نکنم بتونی تصویر را مستقیما داخل صفحه html ایجاد کنی
index.php

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<img src="image.php">
</body>
</html>




image.php

<?php
header("Content-type: image/png");
$im = @imagecreate(110, 20)
or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

MMSHFE
دوشنبه 04 بهمن 1389, 09:55 صبح
با سلام، لطفاً متن خطا رو هم بنويسيد!
البته حدس ميزنم مشكل هدر داشته باشيد (بدليل استفاده از تابع header). در اينصورت، دستور ;()ob_start رو در ابتداي كد و همچنين دستور ;()ob_end_flush رو در انتهاي كد بگذاريد و فايل رو با قالب ANSI يا UTF-8 without BOM ذخيره كنيد.
موفق و مؤيد باشيد.

eshpilen
دوشنبه 04 بهمن 1389, 11:23 صبح
در صفحه اي كه شما header("Content-type: image/png"); ميدي، نميتوني هيچ چيز ديگري بغير از محتويات فايل تصوير رو ارسال كني؛ ولو يك نقطه يا فاصله باشه.
وقتي شما اين هدر رو ميديد، مرورگر عملا كل فايل PHP شما رو، یعنی هرچی از اون برمیگرده، بعنوان بایتهای تشکیل دهندهء یک تصویر فرض میکنه و نمیتونه و نباید فرض دیگری هم داشته باشه. شما حق ندارید هیچ چیز دیگری جز محتویات تصویر رو بجای خروجی این فایل تحویل بدید.

abdollah110110
دوشنبه 04 بهمن 1389, 11:57 صبح
من همه این کارهایی رو که میگین رعایت کردم.
تو خود کد هم که میبینید، مگه اینطور نیست؟
سوال من اینه که کد اشکال داره یا نه؟
ارور هم اینه:65457

abdollah110110
دوشنبه 04 بهمن 1389, 12:23 عصر
من کد زیر رو در Notepad++ نوشتم، دیگه ارور نمیده.

<?php
header("Content-type: image/png");
$im = @imagecreate(200, 200)
or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 20, 5, 5, "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

abdollah110110
دوشنبه 04 بهمن 1389, 12:27 عصر
تشکر از همه دوستان