Hej,
Jag har ett litet skrip som applicerar ett tidsvärde på en bild jag har på min hemsida samt gör texten anti-aliased. När jag använder mig enbart av php-kod i filen fungerar det bra men när jag lägger in html före och efter får jag bara skräpkod plus ett felmeddelande. Någon som vet vad detta beror på?
Warning: Cannot modify header information - headers already sent by (output started at sökväg/imagetext.php:4) in /sökväg/imagetext.php on line 5
Warning: Cannot modify header information - headers already sent by (output started at sökväg/imagetext.php:4) in sökväg/imagetext.php on line 6
<HTML>
<HEAD><TITLE>Exempel 6 - Selektion</TITLE></HEAD>
<BODY bgcolor=#FFFFFF>
<?php
header("Content-type: image/jpeg");
header("Content-Disposition: inline; filename=skiss01.jpg");
$im = imagecreatefromjpeg('skiss01.jpg');
$white = imagecolorallocatealpha($im, 255, 255, 255, 75);
$black = imagecolorallocate($im, 0, 0, 0);
$string = "00:39 UTC";
imagettftext($im, 20, 0, 560, 60, $white, "arialbi.ttf", $string);
//imagestring ($im, 5, 10, imagesy($im)-20, $string, $black);
imagejpeg($im, '', 90);
imagedestroy($im);
?>
</BODY></HTML>
tronezMedlem sedan juli 2001728 inlägg du får inte ha några tecken utskrivna innan du skickar headern
tronezMedlem sedan juli 2001728 inlägg Mja, du får alltså inte skicka något tecken innan du skickar headern, om du har minsta mellenslag i koden så kommer du få det felet. Men nu är det ju för att du har html kod i början av dokumentet.
Du kan prova med att sätta ob_start(); innan du skriver ut html koden, samt sätta ob_end_flush(); när i slutet av koden.
Nån mer lite kunnig kanske har nåt mer råd.
/r:lite förtydligande kanske.... mellanslag få du givetvis ha, men det första som måste skickas är alltså headern och innan det får inget tecken förekomma
Denna kod har jag prövat...
<?php
header("Content-type: image/jpeg");
header("Content-Disposition: inline; filename=skiss01.jpg");
?>
<HTML>
<HEAD><TITLE>Test</TITLE></HEAD>
<BODY bgcolor=#FFFFFF>
<?php
$im = imagecreatefromjpeg('skiss01.jpg');
$white = imagecolorallocatealpha($im, 255, 255, 255, 75);
$black = imagecolorallocate($im, 0, 0, 0);
$string = "00:39 UTC";
imagettftext($im, 20, 0, 560, 60, $white, "arialbi.ttf", $string);
//imagestring ($im, 5, 10, imagesy($im)-20, $string, $black);
imagejpeg($im, '', 90);
imagedestroy($im);
?>
</BODY></HTML>
Felmeddelandena jag skrev innan har försvunnit...Nu kommer detta upp...
ÿØÿàJFIFÿþ;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90 ÿÛC.....
tronezMedlem sedan juli 2001728 inlägg prova detta:
<?php
ob_start();
?>
<HTML>
<HEAD><TITLE>Test</TITLE></HEAD>
<BODY bgcolor=#FFFFFF>
<?php
header("Content-type: image/jpeg");
header("Content-Disposition: inline; filename=skiss01.jpg");
$im = imagecreatefromjpeg('skiss01.jpg');
$white = imagecolorallocatealpha($im, 255, 255, 255, 75);
$black = imagecolorallocate($im, 0, 0, 0);
$string = "00:39 UTC";
imagettftext($im, 20, 0, 560, 60, $white, "arialbi.ttf", $string);
//imagestring ($im, 5, 10, imagesy($im)-20, $string, $black);
imagejpeg($im, '', 90);
imagedestroy($im);
?>
</BODY></HTML>
<?php
ob_end_flush();
?>
dectgapMedlem sedan sep. 20021 655 inlägg Om du ska skicka en bild hör inte HTML-taggarna hemma där.
<?php
header("Content-type: image/jpeg");
header("Content-Disposition: inline; filename=skiss01.jpg");
$im = imagecreatefromjpeg('skiss01.jpg');
$white = imagecolorallocatealpha($im, 255, 255, 255, 75);
$black = imagecolorallocate($im, 0, 0, 0);
$string = "00:39 UTC";
imagettftext($im, 20, 0, 560, 60, $white, "arialbi.ttf", $string);
//imagestring ($im, 5, 10, imagesy($im)-20, $string, $black);
imagejpeg($im, '', 90);
imagedestroy($im);
?>
Jag har precis börjat med PHP och jag kanske har missat någon vital del i hur just PHP och denna funktion är uppbyggd?! :)
Vad vill jag åstadkomma? Jo, jag vill stämpla en tid som finns i $string-variabeln på skiss01.jpg. Denna bild som blir resultatet vill jag sedan ha placerad högst upp på min sida eftersom den ska utgöra själv headern! Någon idé då? :)
Jag vill enbart exekvera koden inom PHP-taggarna så att det hamnar på en vanlig HTML-sida högst upp? Hur åstadkommer man det?
tronezMedlem sedan juli 2001728 inlägg <img src="bild.php" /> borde funka
Prövade med att klippa in denna del av det tidigare skriptet:
<img src="<?php imagejpeg($im, '', 90); ?>" />
Men det fungerade visst inget vidare...Prövade även den metod du skrev. Det jag vill är att få den omgjorda bilden att bli inklistrad på en vanlig HTML-sida. Jag kan inte förstå att detta ska vara så knepigt! :OO
Jag förstod inte riktigt vad du menade först. Men sedan slog det mig hur det måste vara. imagetext.php som filen heter som skapar bilden anropas från exempelvis filen index.php.
Denna kod löste problemet:
<HTML>
<HEAD><TITLE>Logo</TITLE></HEAD>
<link rel="stylesheet" href="flygfyren.css" type="text/css" />
<BODY bgcolor=#FFFFFF>
<img src="imagetext.php" alt="Logo" />
</BODY></HTML>
:) :)
Tack för hjälpen!!!