Archief - PHP: GD Library, imagecreate problem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

orez

Legacy Member
ik heb volgend scriptje

PHP:
<?php
function auth($format = 'L,l,C,L,L,l,C,l')
{
   return preg_replace(array('/L,?/e', '/l,?/e', '/C,?/e'), array('chr(rand(65,90))', 'chr(rand(97,122))', 'rand(0,9)'), $format);
}

function createimage() {
	$authkey = auth();
	
	//output
        header('Content-type: image/jpeg');
	$image = @imagecreatetruecolor(80, 17);
	$BgClr = imagecolorallocate($image, 220, 216, 200);
	$txtClr = imagecolorallocate($image, 118, 116, 110);
	imagestring ($image, 6, 5, 0, $authkey, $txtClr);
	imagejpeg($image);
	imagedestroy($iHandle);
}
?>

dit werkt perfect als ik dit in een enkel bestand laat, en enkel in een bestand createimage() aanroep. dan maakt hij mooi zn image met wat er moet inkomen. Nu moet deze image op een site worden weergegeven (registratie pagina)

Met dit heb je het probleem van Headers already send. Wat logisch is.

Met het gebruik van ob_start() en ob_end_flush() krijg ik volgende error: (zonder dat ik nog iets anders van mn site te zien krijg)
The image "http://jsdp.hiophop-moves.com/index.php?action=register" cannot be displayed, because it contains errors.

Met commandogebruik van
PHP:
imagejpg($image, "auth.jpg");
geeft hij: Warning: imagejpeg(): Unable to open 'auth.jpg' for writing in /opt/www/...

Dus mijn vraag hier is, hoe moet dit gebeuren dat je mooi een pagina krijgt me een gegenereerde picture in, dit ter beveiliging tegen bots etc.. ? Iemand die me hiermee kan helpen? Tnx!

DeFlup

Legacy Member
volgens mij staan uw rechten in die map niet goed. Die image bestaat al, en aangezien je niet de juiste rechten hebt kan je die niet overschrijven.
doe eens een chmod met 0777 op die map

hoe kom je aan die $iHandle bij imagedestroy? ik zie die variable nergens anders in uw script. Niet dat dit echt een error zou veroorzaken normaal.

orez

Legacy Member
ohja $image was eerst $iHandle, maar dit veroorzaakt het probleem niet, nu wordt enkel het geheugen niet geledigd, en de rechten van die map staan op 777, + de file auth.jpg bestaat nog niet! die dient aangemaakt te worden.

*edit: is opgelost, blijkbaar moest ik het volledige pad van mn host opgeven

/opt/www/.../auth.jpg zo werkt het wel :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan