Kan iemand een code maken die een plaatje maakt, met random tekst? Ik wil dit maken zodat je bij het aanmelden eerst de code van het plaatje in moet voeren.

De code voor een plaatje die hier ( http://www.phphulp.nl/forum/showtopic.php?cat=1&id=18690&lasttopic=1 ) al stond is dit:


<?php
// Set the content-type
header("Content-type: image/png");


// Create the image
$im = imagecreatetruecolor(400, 30);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'arial.ttf';

// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
echo imagejpeg($im, "", "100");
imagedestroy($im);
?> 


Deze heb ik getest: http://www.xxx.nl/lol.php
Maar je krijgt zo te zien een soort error: ""De afbeelding “http://www.xxx.nl/lol.php” kan niet worden weergegeven, omdat hij fouten bevat.""

Maar goed, ik wil dus een plaatje, met random tekst (3 chars), waarbij je die drie chars toekent aan een variabele, die je kan checken in een form. Jullie hebben dit vast wel eens gezien bij het aanmelden ergens.

Ik hoop dat iemand dit kan?
99 van de 100 gevallen onbrekt de freetype libery

Je moet gewoon even de header weg halen en zo kan je de error bekijken...
lukt dan nog niet echt...
opzich zou je doormiddel van de date() functie een leuke variabele kunnen samenstellen en daar een afbeelding van kunnen maken..
deze code geeft een plaatje met random tekst van 3 cijfers:


<?php
header("Content-type: image/png");
$im = @imagecreate(100, 50)
   or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 233, 14, 91);
$num = rand(0, 9);
$num1 = rand(0, 9);
$num5 = rand(0, 9);
$code = $num . $num1 . $num5;
imagestring($im, 1, 5, 5,  "$code", $text_color);
imagepng($im);
imagedestroy($im);
?>
Beetje vreemd.. waarom 2 =tekens? En waarom die dubbele quotes om de variabele?
Misschien dat je hier wat leuke dingen uit kunt halen...

<?php
//Juiste header meesturen...
header("Content-type: image/png");

//Tekst
$tekst = 'Hallo, dit is een test!';

//Font
$font = 'Verdana.ttf';

//Afmeetingen vaststellen
$size = imagettfbbox(8, 0, $font, $tekst);
$width = ($size[2] + $size[0])+6;
$height = abs($size[1]) + abs($size[7]);

//Afbeelding maken
$image = imagecreatetruecolor($width, $height);

//Kleurtjes vaststellen
$phphulp = imagecolorallocate($image, 160, 171, 200);
$phphulptekst = imagecolorallocate($image, 23, 40, 87);

//Mooie achtergrond creeëren en doorzichtig maken
imagefilledrectangle($image, 0, 0, $width, $height, $phphulp);
imagecolortransparent($image, $phphulp);

//Tekst erop plakken
imagettftext($image, 8, 0, 0, abs($size[5]), $phphulptekst, $font, $tekst);

//Afbeelding maken & daarna weggooien!
imagepng($image);
imagedestroy($image);
?>
Arjan Kapteijn schreef op 10.06.2006 15:46
Beetje vreemd.. waarom 2 =tekens? En waarom die dubbele quotes om de variabele?


ik doe altijd 2 keer " om een variable, moet dat dan 2 keer ' zijn?
Arjan Kapteijn schreef op 10.06.2006 15:48
Misschien dat je hier wat leuke dingen uit kunt halen...

<?php
//Juiste header meesturen...
header("Content-type: image/png");
.........
gepng($image);
imagedestroy($image);
?>


die werkt niet: http://www.xxx.nl/loll.php (ja het is loll.php met 2 l'en)


maar hoe zorg je ervoor dat de tekst groter wordt? (ik heb nu een werkend random plaatje op www.xxx.nl/lol.php (ja met 1 l)
het moeten geen quotes zijn
Boris schreef op 10.06.2006 15:51
[quote=Arjan Kapteijn schreef op 10.06.2006 15:46]Beetje vreemd.. waarom 2 =tekens? En waarom die dubbele quotes om de variabele?


ik doe altijd 2 keer " om een variable, moet dat dan 2 keer ' zijn?[/quote]Dat is niet waar, er staan tientallen variabelen in jouw code waar echt geen quotes omheen staan. Je bent dus niet consequent.

En wat al is gezegd, variabelen horen nooit tussen quotes te staan.

Reageren