Don't dream your life, live your dreams!
Hoe doe ik dat dan? mijn php script voor het random number is:Silencer_NL schreef op vrijdag 23 december 2005 @ 15:14:
2 functies maken... 1 die het plaatje teruggeeft, en 1 die een string teruggeeft...
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
78
79
80
| <?php $width = 100; // width of image $height = 40; // height of image $len = 8; // length of string $fontsize = 5; // fontsize unset($random_text); $lchar = 0; $char = 0; /************************************************** $random_text will hold the secret and random text! **************************************************/ // create 'random' text 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); // create handle for image $im = @imagecreate($width,$height); $background_colour = imagecolorallocate($im, 62,62,62); $text_colour = imagecolorallocate($im, 111,120,69); imagerectangle($im, 0, 0, $width-1, $height-1, $text_colour); // draw the string horizontally imagestring($im, $fontsize, rand(3, $width-$fontwidth-3), rand(2, $height-$fontheight-3), $random_text, $text_colour); // lets output! header("Content-type: image/png"); imagepng($im,'',80); imagedestroy($im); ?> |
Edit: Je kan beter een hash maken van het REMOTE_ADDR en nog wat andere vaste waarden, waaronder bijvoorbeeld een datum of een geheime string. Deze is altijd hetzelfde, en die hoef je dus ook niet door te geven.
Edit 2: sessies kunnen ook een uitkomst bieden.
[ Voor 57% gewijzigd door NMe op 23-12-2005 15:19 ]
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
- Je normale PHP script gaat er vanuit dat er een HTML pagina opgebouwd word.
- Het plaatjes script gaat er van uit dat je een .JPG opgebouwd word.
Oftewel 2 verschillende Content-Types, oftewel je kan nooit via een include er zo maar in gooien. Of je moet iets van index.php gebruiken voor de html pagina en dan index.php?fun=plaatje voor het plaatje, via een switch case...header("Content-type: image/png");
[ Voor 7% gewijzigd door djexplo op 23-12-2005 15:21 ]
'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'
Ja maar dan kan ik de string niet meer uitlezen ..-NMe- schreef op vrijdag 23 december 2005 @ 15:17:
Je kan geen plaatje includen in een PHP-file die HTML uitvoert, je moet gewoon een <img>-tag gebruiken.
Zie mijn edit.ZpAz schreef op vrijdag 23 december 2005 @ 15:18:
Ja maar dan kan ik de string niet meer uitlezen ..
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Verwijderd
Zal eens gaan kijken:)Verwijderd schreef op vrijdag 23 december 2005 @ 15:21:
Gebruik een sessie om de waarde van de string ook in andere scripts beschikbaar te hebben.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Verwijderd
Je zou natuurlijk ook sessiegegevens kunnen opslaan in een database. Waar en hoe precies je die gegevens bijhoudt is niet zo belangrijk, het gaat natuurlijk om de techniek, niet om de opslagmethode-NMe- schreef op vrijdag 23 december 2005 @ 18:55:
Tussenkomst van een database vind ik redelijk overdreven wanneer het ook met sessies kan.
Zowel sessie data als data uit de database is niet rechtstreeks onderschepbaar bij de bezoeker van een site. Het is allebei data data alleen serverside wordt afgehandeld.g00fy schreef op dinsdag 27 december 2005 @ 17:07:
Zulke images zijn er toch juist voor om het form proces niet geautomatiseerd te kunnen laten doen? Door het in een sessie te zetten maken je het makkelijker onderschepbaar dan in een database imo. Waarom die dan niet gebruiken als je die toch ter beschikking hebt?
Programmer - an organism that turns coffee into software.
Verwijderd
En waar precies wordt het extra ingewikkeld gemaakt voor een machine om te kunnen "lezen" wat er staat? Als je dan alsnog uit de HTML broncode de tekens kunt achterhalen heb je heel veel moeite gedaan voor niets. De url van het plaatje (of de plaatjes) mag niets verklappen. Je zult dus sowieso ervoor moeten zorgen dat de server bijhoudt wat er in het plaatje stond, en dat per client opslaan, en dat kan dus met een sessie. Ik zie dus niet echt waarom jouw reply zinvoller zou zijn, het lijkt er eerder op dat je het punt een beetje mist.Verwijderd schreef op dinsdag 27 december 2005 @ 17:28:
Dan nu een wat zinvoller reply. Misschien kun je wel 10 plaatjes kant en klaar maken, namelijk de getallen 0 t/m 9 en daar dan alles mee samenstellen? Lekker simpel en geen moeilijke dingen met plaatjes aanmaken en zo. Kun je ook eenvoudig ieder nummer mee maken.