Haloo,
ik heb een img.php bestand voor een controle met zo een figuur.
Maar hij toont de figuur niet, hoe komt dit?


het script:
<?php
session_start();
$width = 100; // breedte
$height = 40; // hoogte
$len = 3; // lengte tekst
$fontsize = 15; // lettertype

unset($random_text);

$lchar = 0;
$char = 0;
/**************************************************
$random_text is de code
**************************************************/
// tekst maken
for($i = 0; $i < $len; $i++) {
while($char == $lchar) {
$char = rand(48, 109);
if($char > 57) $char += 7;
if($char > 90) $char += 6;
}
$random_text .= chr($char);
$lchar = $char;
}

$fontwidth = ImageFontWidth($fontsize) * strlen($random_text);
$fontheight = ImageFontHeight($fontsize);

// afbeelding grootte
$im = @imagecreate($width,$height);

// achtergrond maken
$background_colour = imagecolorallocate($im, 204, 0, 0);

// tekst kleur
$text_colour = imagecolorallocate($im, rand(150,255), rand(150,255), rand(150,255));

// border
imagerectangle($im, 0, 0, $width-1, $height-1, $text_colour);

// string tekenen
imagestring($im, $fontsize, rand(3, $width-$fontwidth-3), rand(2, $height-$fontheight-3), $random_text, $text_colour);

//output
header("Content-type: image/png");
imagepng($im,'',80);

imagedestroy($im);

$_SESSION["verify"] = $random_text;
?>

ik heb al andere scripts gezocht, het opgeslagen als .php5
Als je header("Content-type: image/png"); weghaalt en dan direct img.php5 aanroept, welke errors krijg je dan?
Ik zal het script maar even werkend posten
dan is het alleen maar Qwestie van Copy paste!

hierzo:

<?php
session_start();
$width      = 100; // breedte
$height     =  40; // hoogte
$len        =  3; // lengte tekst
$fontsize   =  15; // lettertype

unset($random_text);

$lchar = 0;
$char  = 0;
/**************************************************
$random_text is de code
**************************************************/
// tekst maken
for($i = 0; $i < $len; $i++) {
    while($char == $lchar) {
        $char = rand(48, 109);
        if($char > 57) $char += 7;
        if($char > 90) $char += 6;
    } 
    $random_text .= chr($char);
    $lchar = $char;
}

$fontwidth  = ImageFontWidth($fontsize) * strlen($random_text);
$fontheight = ImageFontHeight($fontsize);

// afbeelding grootte
$im = @imagecreate($width,$height);

// achtergrond maken
$background_colour = imagecolorallocate($im, 204, 0, 0);

// tekst kleur
$text_colour = imagecolorallocate($im, rand(150,255), rand(150,255), rand(150,255)); 

// border
imagerectangle($im, 0, 0, $width-1, $height-1, $text_colour);

// string tekenen
imagestring($im, $fontsize, rand(3, $width-$fontwidth-3), rand(2, $height-$fontheight-3), $random_text, $text_colour);

//output
header("Content-type: image/png");
imagepng($im);

imagedestroy($im);

$_SESSION["verify"] = $random_text;
?> 


Veel plezier ermee..

groetjes Mitchel
BTW, waarom sla je die code op in een sessie? Die kun je toch ook manipuleren of niet?
Tommy schreef op 05.12.2007 19:13
BTW, waarom sla je die code op in een sessie? Die kun je toch ook manipuleren of niet?

De sessie is nodig voor verificatie (vergelijking tussen invoer en plaatje). Een sessie is direct niet te manipuleren, omdat het server-side opgeslagen wordt.
Mitchelp schreef op 05.12.2007 17:29
Ik zal het script maar even werkend posten
dan is het alleen maar Qwestie van Copy paste!

hierzo:

<?php
session_start();
$width      = 100; // breedte
$height     =  40; // hoogte
$len        =  3; // lengte tekst
$fontsize   =  15; // lettertype

unset($random_text);

$lchar = 0;
$char  = 0;
/**************************************************
$random_text is de code
**************************************************/
// tekst maken
for($i = 0; $i < $len; $i++) {
    while($char == $lchar) {
        $char = rand(48, 109);
        if($char > 57) $char += 7;
        if($char > 90) $char += 6;
    } 
    $random_text .= chr($char);
    $lchar = $char;
}

$fontwidth  = ImageFontWidth($fontsize) * strlen($random_text);
$fontheight = ImageFontHeight($fontsize);

// afbeelding grootte
$im = @imagecreate($width,$height);

// achtergrond maken
$background_colour = imagecolorallocate($im, 204, 0, 0);

// tekst kleur
$text_colour = imagecolorallocate($im, rand(150,255), rand(150,255), rand(150,255)); 

// border
imagerectangle($im, 0, 0, $width-1, $height-1, $text_colour);

// string tekenen
imagestring($im, $fontsize, rand(3, $width-$fontwidth-3), rand(2, $height-$fontheight-3), $random_text, $text_colour);

//output
header("Content-type: image/png");
imagepng($im);

imagedestroy($im);

$_SESSION["verify"] = $random_text;
?> 


Veel plezier ermee..

groetjes Mitchel


hij doet het nog altijd niet...
‰PNG

&#65533;&#65533;&#65533;
IHDR&#65533;&#65533;&#65533;d&#65533;&#65533;&#65533;(&#65533;&#65533;&#65533;2¶Í&#65533;&#65533;&#65533;&#65533;PLTEÌ&#65533;&#65533;é÷ض‹¡³&#65533;&#65533;&#65533;=IDAT(‘cø>040 €À ä16ügFæI°£ðøQxÒ(<c^2
¯¾™‡j2ï2Þ~(J
&#65533;„Ì8X×U¯&#65533;&#65533;&#65533;&#65533;IEND®B`‚


mvos mooie source moet ik zo zeggen :)
is gelukt, ik had vergete de toelating geven voor overschrijven van huidig bestand...
GaMer13 schreef op 05.12.2007 19:38
[quote='Tommy schreef op 05.12.2007 19:13']BTW, waarom sla je die code op in een sessie? Die kun je toch ook manipuleren of niet?

De sessie is nodig voor verificatie (vergelijking tussen invoer en plaatje). Een sessie is direct niet te manipuleren, omdat het server-side opgeslagen wordt.[/quote]

Spambot kan sessie toch gewoon uitlezen xD

Reageren