afbeelding laad niet
http://www.phphulp.nl/php/scripts/9/760/
Dit script gebruik ik letterlijk. Alleen het aanroepen van het plaatje werkt niet. Zeg maar op captcha.php krijg ik een error plaatje te zien en op afbeelding.php werkt de afbeelding wel. Weet iemand waaraan dat zou kunnen liggen. Het gewoon aanroepen van alleen het plaatje dmv.
<img src="afbeelding.php" height="45px" width="108px" />
levert ook een error plaatje op.
Dit script gebruik ik letterlijk. Alleen het aanroepen van het plaatje werkt niet. Zeg maar op captcha.php krijg ik een error plaatje te zien en op afbeelding.php werkt de afbeelding wel. Weet iemand waaraan dat zou kunnen liggen. Het gewoon aanroepen van alleen het plaatje dmv.
<img src="afbeelding.php" height="45px" width="108px" />
levert ook een error plaatje op.
en dan te zoeken naar:
:)
GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
Code (php)
1
2
3
2
3
<?php
$fonts = array('poorrichard.ttf','tccm.ttf','times.ttf'); //een array met lettertypes, deze kun je zelf vullen
?>
$fonts = array('poorrichard.ttf','tccm.ttf','times.ttf'); //een array met lettertypes, deze kun je zelf vullen
?>
Hier worden font's aan het script toegevoegd. Je kunt de font's uit het script halen of je upload een eigen font naar je server die je dan weer in de font array invult.
Heb je niet een verkeerde link naar het php script gemaakt. probeer anders is:
Code (php)
Als het goed is krijg je dan een headers already sent error. Maar staan daar nog errors onder?
------------------------------
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\njord\900.php:2) in C:\wamp\www\njord\afbeelding.php on line 3
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\njord\900.php:2) in C:\wamp\www\njord\afbeelding.php on line 3
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\njord\900.php:2) in C:\wamp\www\njord\afbeelding.php on line 4
Fatal error: Call to undefined function imagecreate() in C:\wamp\www\njord\afbeelding.php on line 33
Geef de link naar je scrippie eens
http://www.phphulp.nl/php/scripts/9/760/
die ik gebruik.
http://www.lkv-njord.nl/testmap/captcha1.php
zoals je ziet, geen tekst, maar de afbeelding word wel gemaakt:S
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
error_reporting(E_ALL); //error reporting op all
session_start(); //zorgen dat we met sessies kunnen werken
header("Content-type: image/png");
$hoofdletters = FALSE; //hoofdletters of niet TRUE voor ja, FALSE voor nee
$aantal = 6; //aantal karakters
$fonts = array('poorrichard.ttf','tccm.ttf','times.ttf'); //een array met lettertypes, deze kun je zelf vullen
$vert = 10; //aantal verticale lijnen
if($hoofdletters != FALSE) //als je wel hoofdletters wil
{
$chars = array_merge(range('a', 'z'), range('A', 'Z'), range(1, 9), range(1, 9)); //maak een array cijfers aan met hoofdletters
}
else //geen hoofdletters?
{
$chars = array_merge(range('a', 'z'), range(1, 9), range(1, 9)); //dan een array zonder hoofdletters
}
$verify_string = NULL; //verfy string wordt zometeen gevuld, en maken we hier dus aan met waarde NULL
for ($rand = 0; $rand < $aantal; $rand++) //een for loopje welke herhaalt voor het aantal karakters
{
$random = rand(0, count($chars) -1); //een pak een willekeurige karakter uit de array
$verify_string .= $chars[$random]; //en voeg deze toe aan de string verfy string
}
$afbsize = $aantal * 18; //de breedte van de afbeelding is het aantal karakters * 18
$strsize = $afbsize - 1; //en de streep lengte is de abeeldings lengte -1
$_SESSION['string'] = md5($verify_string); //de sessie met de code is een md5 van de code
$img = imagecreate($afbsize, 45);
$white = imagecolorallocate($img, 255, 255, 255); //maak even het kleurtje wit aan
$black = imagecolorallocate($img, 0, 0, 0); //en zwart
$grey = imagecolorallocate($img, 81, 81, 81); //en grijs
imagefill($img, 0, 0, $white); //geef de afbeelding een witte achtergrond
imageline($img, 0, 0, 0, 44, $black); //een zwart lijntje links
imageline($img, 0, 0, $strsize, 0, $black); //een zwart lijntje boven
imageline($img, $strsize, 0, $strsize, 45, $black); //een zwart lijntje rechts
imageline($img, 0, 44, $strsize, 44, $black); //en een zwart lijntje onder
for($i = 0; $i < $vert; $i++) //een for loopje voor verticale lijnen
{
$wil = imagecolorallocate($img, rand(0,255), rand(0,255), rand(0,255)); //creeer een willekeurige kleur
imageline($img, rand(2, $strsize), 1, rand(2, $strsize), 44, $wil); //en een willekeurig lijntje met die willekeurige kleur
}
for ($i = 0; $i < $aantal; $i++) //en ook eentje voor de letters
{
$wil = imagecolorallocate($img, rand(40,255), rand(40,255), rand(40,255)); //creeer wederom een willekeurige kleur
$plaats = $i * 16 + 6; //zet de letter even op de goede plaats
imagettftext($img,
19,
rand(-20,20), //willekeurige rotatie
$plaats, //plaats horizontaal
rand(20,40), //random plaats verticaal
$wil, //willekeurige kleur
$fonts[array_rand($fonts)], //willekeurig lettertype
$verify_string[$i]); //met de letter
}
$wil = imagecolorallocate($img, rand(0,245), rand(0,245), rand(0,245)); //random kleur
imageline($img, 1, rand(2, 16), $strsize, rand(2, 16), $wil); //lijntje op het bovenste deel van de afbeelding
$wil = imagecolorallocate($img, rand(0,245), rand(0,245), rand(0,245)); //en nog een random kleur
imageline($img, 1, rand(17, 33), $strsize, rand(17, 33), $wil); //en nog een lijntje op het onderste deel
imagepng($img); //creeer afbeelding
imagedestroy($img); //verwijder afbeelding
?>
error_reporting(E_ALL); //error reporting op all
session_start(); //zorgen dat we met sessies kunnen werken
header("Content-type: image/png");
$hoofdletters = FALSE; //hoofdletters of niet TRUE voor ja, FALSE voor nee
$aantal = 6; //aantal karakters
$fonts = array('poorrichard.ttf','tccm.ttf','times.ttf'); //een array met lettertypes, deze kun je zelf vullen
$vert = 10; //aantal verticale lijnen
if($hoofdletters != FALSE) //als je wel hoofdletters wil
{
$chars = array_merge(range('a', 'z'), range('A', 'Z'), range(1, 9), range(1, 9)); //maak een array cijfers aan met hoofdletters
}
else //geen hoofdletters?
{
$chars = array_merge(range('a', 'z'), range(1, 9), range(1, 9)); //dan een array zonder hoofdletters
}
$verify_string = NULL; //verfy string wordt zometeen gevuld, en maken we hier dus aan met waarde NULL
for ($rand = 0; $rand < $aantal; $rand++) //een for loopje welke herhaalt voor het aantal karakters
{
$random = rand(0, count($chars) -1); //een pak een willekeurige karakter uit de array
$verify_string .= $chars[$random]; //en voeg deze toe aan de string verfy string
}
$afbsize = $aantal * 18; //de breedte van de afbeelding is het aantal karakters * 18
$strsize = $afbsize - 1; //en de streep lengte is de abeeldings lengte -1
$_SESSION['string'] = md5($verify_string); //de sessie met de code is een md5 van de code
$img = imagecreate($afbsize, 45);
$white = imagecolorallocate($img, 255, 255, 255); //maak even het kleurtje wit aan
$black = imagecolorallocate($img, 0, 0, 0); //en zwart
$grey = imagecolorallocate($img, 81, 81, 81); //en grijs
imagefill($img, 0, 0, $white); //geef de afbeelding een witte achtergrond
imageline($img, 0, 0, 0, 44, $black); //een zwart lijntje links
imageline($img, 0, 0, $strsize, 0, $black); //een zwart lijntje boven
imageline($img, $strsize, 0, $strsize, 45, $black); //een zwart lijntje rechts
imageline($img, 0, 44, $strsize, 44, $black); //en een zwart lijntje onder
for($i = 0; $i < $vert; $i++) //een for loopje voor verticale lijnen
{
$wil = imagecolorallocate($img, rand(0,255), rand(0,255), rand(0,255)); //creeer een willekeurige kleur
imageline($img, rand(2, $strsize), 1, rand(2, $strsize), 44, $wil); //en een willekeurig lijntje met die willekeurige kleur
}
for ($i = 0; $i < $aantal; $i++) //en ook eentje voor de letters
{
$wil = imagecolorallocate($img, rand(40,255), rand(40,255), rand(40,255)); //creeer wederom een willekeurige kleur
$plaats = $i * 16 + 6; //zet de letter even op de goede plaats
imagettftext($img,
19,
rand(-20,20), //willekeurige rotatie
$plaats, //plaats horizontaal
rand(20,40), //random plaats verticaal
$wil, //willekeurige kleur
$fonts[array_rand($fonts)], //willekeurig lettertype
$verify_string[$i]); //met de letter
}
$wil = imagecolorallocate($img, rand(0,245), rand(0,245), rand(0,245)); //random kleur
imageline($img, 1, rand(2, 16), $strsize, rand(2, 16), $wil); //lijntje op het bovenste deel van de afbeelding
$wil = imagecolorallocate($img, rand(0,245), rand(0,245), rand(0,245)); //en nog een random kleur
imageline($img, 1, rand(17, 33), $strsize, rand(17, 33), $wil); //en nog een lijntje op het onderste deel
imagepng($img); //creeer afbeelding
imagedestroy($img); //verwijder afbeelding
?>
Gewijzigd op 01/01/1970 01:00:00 door Guido van C