mam skript s formularom a vytvoril som si k nemu ochranu proti spamu pomocou funkcie imagecreate(). mam to v osobitnom subore image.php, ktory includujem do hlavneho skriptu, problem je v tom, ze opera mi zobrazi namiesto celeho formulára len rámček s rozmermi obrázka, ktorý mal vygenerovať skript, formulár tam nie je. Pravdepodobne bude problém v používaní hlavičiek :-(
ukážka:
main.php
<?php
$header="Expires: ".GMDate("D, d M Y H:i:s \G\M\T");
Header ($header);
Header("Last-Modified:".gmdate("D, d M Y H:i:s")."GMT");
Header("Cache-control:no-cache,must-revalidate");
Header("Pragma:no-cache");
session_start();
if ($send=="yes") Header("Location:forum.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<head>
<META HTTP-EQUIV="content-type" CONTENT="text/html" ; CHARSET="windows-1250">
</head>
<body>
<?php
include "image.php";
echo "<form action='main.php'>\n";
echo "</form>\n";
if ($send=='yes') {
} else {
}
?>
</body>
image.php
<?php
function keygen() {
ob_start();
Header("Content-type:image/png");
$posval="abcdefghijklmnopqrstuwxyz";
$i=0;
for ($i=0;$i<5;$i++) {
$ss=SubStr($posval,rand(0,24),1);
$string.=$ss;
}
$im=ImageCreateFromPNG("img/raster.png");
$blue=ImageColorAllocate($im,0,127,255);
ImageString($im,12,18,0,$string,$blue);
ImagePNG($im,"img/antispam.png");
ImageDestroy($im);
$fp=FOpen("data.txt","w");
FPuts($fp,$string);
FClose($fp);
ob_end_flush();
}
?>
Môžte mi prosím poradiť v čom je problém, pomôže output buffering? Aká hlavička v php sa používa na textový obsah?